From da252e4730d2e7e6c734e1c8bed701edba8bd37d Mon Sep 17 00:00:00 2001 From: Ruchi Kandoi Date: Thu, 19 Nov 2015 16:07:19 -0800 Subject: [PATCH] trace: cpufreq: Add tracing for min/max cpufreq Change-Id: I73f6ec437c1f805437d9376abb6510d1364b07ec Signed-off-by: Ruchi Kandoi Conflicts: drivers/cpufreq/cpufreq.c include/trace/events/power.h --- Documentation/trace/events-power.txt | 1 + drivers/cpufreq/cpufreq.c | 1 + include/trace/events/power.h | 27 ++++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Documentation/trace/events-power.txt b/Documentation/trace/events-power.txt index e1498ff8cf94..205040068caa 100644 --- a/Documentation/trace/events-power.txt +++ b/Documentation/trace/events-power.txt @@ -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: diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 91bd439735d8..81185c76cdf1 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -2024,6 +2024,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); diff --git a/include/trace/events/power.h b/include/trace/events/power.h index 9ff86d14a45d..ef8d6f75006c 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h @@ -58,7 +58,7 @@ TRACE_EVENT(cpu_frequency_switch_start, TP_STRUCT__entry( __field( u32, start_freq ) __field( u32, end_freq ) - __field( u32, cpu_id ) + __field( u32, cpu_id ) ), TP_fast_assign( @@ -73,6 +73,31 @@ TRACE_EVENT(cpu_frequency_switch_start, (unsigned long)__entry->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(cpu_frequency_switch_end, TP_PROTO(unsigned int cpu_id),