trace: cpufreq: Add tracing for min/max cpufreq
authorRuchi Kandoi <kandoiruchi@google.com>
Fri, 20 Nov 2015 00:07:19 +0000 (16:07 -0800)
committerJohn Stultz <john.stultz@linaro.org>
Tue, 16 Feb 2016 21:53:30 +0000 (13:53 -0800)
Change-Id: I73f6ec437c1f805437d9376abb6510d1364b07ec
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Documentation/trace/events-power.txt
drivers/cpufreq/cpufreq.c
include/trace/events/power.h

index 21d514ced212436ea70aa5a218e20a5f8407523e..4d817d5acc4090a7001b7ca4ae505d7884d1e3a3 100644 (file)
@@ -25,6 +25,7 @@ cpufreq.
 
 cpu_idle               "state=%lu cpu_id=%lu"
 cpu_frequency          "state=%lu cpu_id=%lu"
+cpu_frequency_limits   "min=%lu max=%lu cpu_id=%lu"
 
 A suspend event is used to indicate the system going in and out of the
 suspend mode:
index 8412ce5f93a712a03bfa81df25bee238a299d242..e49512718325b73d59fa52d5eaf225560cce91e0 100644 (file)
@@ -2128,6 +2128,7 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
 
        policy->min = new_policy->min;
        policy->max = new_policy->max;
+       trace_cpu_frequency_limits(policy->max, policy->min, policy->cpu);
 
        pr_debug("new min and max freqs are %u - %u kHz\n",
                 policy->min, policy->max);
index 284244ebfe8d2c3ef7036c3a7e9b55ea15b11078..a4878c1b35d21aeec04cae034bdf1160beeed4d7 100644 (file)
@@ -120,6 +120,31 @@ DEFINE_EVENT(cpu, cpu_frequency,
        TP_ARGS(frequency, cpu_id)
 );
 
+TRACE_EVENT(cpu_frequency_limits,
+
+       TP_PROTO(unsigned int max_freq, unsigned int min_freq,
+               unsigned int cpu_id),
+
+       TP_ARGS(max_freq, min_freq, cpu_id),
+
+       TP_STRUCT__entry(
+               __field(        u32,            min_freq        )
+               __field(        u32,            max_freq        )
+               __field(        u32,            cpu_id          )
+       ),
+
+       TP_fast_assign(
+               __entry->min_freq = min_freq;
+               __entry->max_freq = min_freq;
+               __entry->cpu_id = cpu_id;
+       ),
+
+       TP_printk("min=%lu max=%lu cpu_id=%lu",
+                 (unsigned long)__entry->min_freq,
+                 (unsigned long)__entry->max_freq,
+                 (unsigned long)__entry->cpu_id)
+);
+
 TRACE_EVENT(device_pm_callback_start,
 
        TP_PROTO(struct device *dev, const char *pm_ops, int event),