DEBUG: sched: add tracepoint for cpu/freq scale invariance
authorJuri Lelli <juri.lelli@arm.com>
Mon, 9 Nov 2015 12:06:24 +0000 (12:06 +0000)
committerLeo Yan <leo.yan@linaro.org>
Tue, 10 May 2016 08:53:25 +0000 (16:53 +0800)
Signed-off-by: Juri Lelli <juri.lelli@arm.com>
include/trace/events/sched.h
kernel/sched/fair.c

index 9b90c57517a918687189933ae6920b80d251e98e..20a7216f8abbeabf5850c48c67d072d2b2098e65 100644 (file)
@@ -562,6 +562,30 @@ TRACE_EVENT(sched_wake_idle_without_ipi,
 
        TP_printk("cpu=%d", __entry->cpu)
 );
+
+TRACE_EVENT(sched_contrib_scale_f,
+
+       TP_PROTO(int cpu, unsigned long freq_scale_factor,
+                unsigned long cpu_scale_factor),
+
+       TP_ARGS(cpu, freq_scale_factor, cpu_scale_factor),
+
+       TP_STRUCT__entry(
+               __field(int, cpu)
+               __field(unsigned long, freq_scale_factor)
+               __field(unsigned long, cpu_scale_factor)
+       ),
+
+       TP_fast_assign(
+               __entry->cpu = cpu;
+               __entry->freq_scale_factor = freq_scale_factor;
+               __entry->cpu_scale_factor = cpu_scale_factor;
+       ),
+
+       TP_printk("cpu=%d freq_scale_factor=%lu cpu_scale_factor=%lu",
+                 __entry->cpu, __entry->freq_scale_factor,
+                 __entry->cpu_scale_factor)
+);
 #endif /* _TRACE_SCHED_H */
 
 /* This part must be outside protection */
index 1191c4b1b119b6cf12e40c7feb959b7de74117ca..ec2e8aecc4f36c9c7501b2d1c7fea7b41238ea97 100644 (file)
@@ -2587,6 +2587,7 @@ __update_load_avg(u64 now, int cpu, struct sched_avg *sa,
 
        scale_freq = arch_scale_freq_capacity(NULL, cpu);
        scale_cpu = arch_scale_cpu_capacity(NULL, cpu);
+       trace_sched_contrib_scale_f(cpu, scale_freq, scale_cpu);
 
        /* delta_w is the amount already accumulated against our next period */
        delta_w = sa->period_contrib;