The result of "__entry->walt_avg = (__entry->demand << 10)" will exceed
the range of "unsigned int", which will be truncated and make the trace
looks like as follows:
UnityMain-4588 [004] 6029.645672: walt_update_history: 4588(UnityMain): runtime
9928307 samples 1 event 4
demand
9928307 walt 157 pelt 870 (hist:
9928307 9604307 8440077 87392
34144328) cpu 4
UnityMain-4588 [004] 6029.653658: walt_update_history: 4588(UnityMain): runtime
10000000 samples 1 event 4
demand
10000000 walt 165 pelt 886 (hist:
10000000 9955691 6549308 64000
34144328) cpu 4
Fix this by using a u64 type instead of unsgined int type and make the
trace as below:
UnityMain-4617 [004] 117.613558: walt_update_history: 4617(UnityMain): runtime
5770597 samples 1 event 4
demand
7038739 walt 720 pelt 680 (hist:
5770597 7680001 8904509 65596 156) cpu 4
UnityMain-4617 [004] 117.633560: walt_update_history: 4617(UnityMain): runtime
9911238 samples 1 event 4
demand
9911238 walt 1014 pelt 769 (hist:
9911238 5770597 7680001 0
1664188058) cpu 4
Signed-off-by: Ke Wang <ke.wang@spreadtrum.com>
__field( int, samples )
__field( int, evt )
__field( u64, demand )
__field( int, samples )
__field( int, evt )
__field( u64, demand )
- __field(unsigned int, walt_avg )
+ __field( u64, walt_avg )
__field(unsigned int, pelt_avg )
__array( u32, hist, RAVG_HIST_SIZE_MAX)
__field( int, cpu )
__field(unsigned int, pelt_avg )
__array( u32, hist, RAVG_HIST_SIZE_MAX)
__field( int, cpu )
),
TP_printk("%d (%s): runtime %u samples %d event %d demand %llu"
),
TP_printk("%d (%s): runtime %u samples %d event %d demand %llu"
- " walt %u pelt %u (hist: %u %u %u %u %u) cpu %d",
+ " walt %llu pelt %u (hist: %u %u %u %u %u) cpu %d",
__entry->pid, __entry->comm,
__entry->runtime, __entry->samples, __entry->evt,
__entry->demand,
__entry->pid, __entry->comm,
__entry->runtime, __entry->samples, __entry->evt,
__entry->demand,