trace/sched: Fix compilation for 32 bit systems

do_div() expects the dividend to be a 64 bit type. We are passing
an unsigned long to do_div() from sched_load_avg_task and
sched_load_avg_cpu trace points. This breaks compilation on
a 32 bit system.

Change-Id: I9eb07dba1e62b68d5fc8d12e3f478b22c4ba5e0d
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
This commit is contained in:
Pavankumar Kondeti
2018-02-23 09:53:22 +05:30
committed by pavankumar kondeti
parent 21bd85cd95
commit a2ee4e7945

View File

@@ -636,7 +636,7 @@ TRACE_EVENT(sched_load_avg_task,
__field( unsigned long, load_avg )
__field( unsigned long, util_avg )
__field( unsigned long, util_avg_pelt )
__field( unsigned long, util_avg_walt )
__field( u32, util_avg_walt )
__field( u64, load_sum )
__field( u32, util_sum )
__field( u32, period_contrib )
@@ -654,14 +654,14 @@ TRACE_EVENT(sched_load_avg_task,
__entry->util_avg_pelt = avg->util_avg;
__entry->util_avg_walt = 0;
#ifdef CONFIG_SCHED_WALT
__entry->util_avg_walt = (((unsigned long)((struct ravg*)_ravg)->demand) << SCHED_CAPACITY_SHIFT);
do_div(__entry->util_avg_walt, walt_ravg_window);
__entry->util_avg_walt = ((struct ravg*)_ravg)->demand /
(walt_ravg_window >> SCHED_CAPACITY_SHIFT);
if (!walt_disabled && sysctl_sched_use_walt_task_util)
__entry->util_avg = __entry->util_avg_walt;
#endif
),
TP_printk("comm=%s pid=%d cpu=%d load_avg=%lu util_avg=%lu "
"util_avg_pelt=%lu util_avg_walt=%lu load_sum=%llu"
"util_avg_pelt=%lu util_avg_walt=%u load_sum=%llu"
" util_sum=%u period_contrib=%u",
__entry->comm,
__entry->pid,
@@ -689,7 +689,7 @@ TRACE_EVENT(sched_load_avg_cpu,
__field( unsigned long, load_avg )
__field( unsigned long, util_avg )
__field( unsigned long, util_avg_pelt )
__field( unsigned long, util_avg_walt )
__field( u32, util_avg_walt )
),
TP_fast_assign(
@@ -699,16 +699,15 @@ TRACE_EVENT(sched_load_avg_cpu,
__entry->util_avg_pelt = cfs_rq->avg.util_avg;
__entry->util_avg_walt = 0;
#ifdef CONFIG_SCHED_WALT
__entry->util_avg_walt =
cpu_rq(cpu)->prev_runnable_sum << SCHED_CAPACITY_SHIFT;
do_div(__entry->util_avg_walt, walt_ravg_window);
__entry->util_avg_walt = div64_ul(cpu_rq(cpu)->prev_runnable_sum,
walt_ravg_window >> SCHED_CAPACITY_SHIFT);
if (!walt_disabled && sysctl_sched_use_walt_cpu_util)
__entry->util_avg = __entry->util_avg_walt;
#endif
),
TP_printk("cpu=%d load_avg=%lu util_avg=%lu "
"util_avg_pelt=%lu util_avg_walt=%lu",
"util_avg_pelt=%lu util_avg_walt=%u",
__entry->cpu, __entry->load_avg, __entry->util_avg,
__entry->util_avg_pelt, __entry->util_avg_walt)
);