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>
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
index 212c5db..f578047 100644
--- a/include/trace/events/sched.h
+++ b/include/trace/events/sched.h
@@ -636,7 +636,7 @@
__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 @@
__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 @@
__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 @@
__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)
);