From 57e6b51a08f8c908024c6da69d5cbbc5f402d018 Mon Sep 17 00:00:00 2001 From: Park Bumgyu Date: Thu, 2 Aug 2018 09:59:18 +0900 Subject: [PATCH] sched: cpufreq_schedutil: add trace for next frequency Change-Id: Ibf50de641e9c0685dd36aa85f018351e596c200c Signed-off-by: Park Bumgyu --- include/trace/events/power.h | 24 ++++++++++++++++++++++++ kernel/sched/cpufreq_schedutil.c | 5 ++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/include/trace/events/power.h b/include/trace/events/power.h index dd3b11cc25ab..939d3ff740c5 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h @@ -217,6 +217,30 @@ TRACE_EVENT(cpu_frequency_limits, (unsigned long)__entry->cpu_id) ); +TRACE_EVENT(cpu_frequency_sugov, + + TP_PROTO(unsigned int freq, unsigned long util, unsigned int cpu_id), + + TP_ARGS(freq, util, cpu_id), + + TP_STRUCT__entry( + __field( u32, freq ) + __field( u32, util ) + __field( u32, cpu_id ) + ), + + TP_fast_assign( + __entry->freq = freq; + __entry->util = util; + __entry->cpu_id = cpu_id; + ), + + TP_printk("freq=%lu util=%lu cpu_id=%lu", + (unsigned long)__entry->freq, + (unsigned long)__entry->util, + (unsigned long)__entry->cpu_id) +); + TRACE_EVENT(device_pm_callback_start, TP_PROTO(struct device *dev, const char *pm_ops, int event), diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 468ec4fc7a3b..c22041233f9f 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -257,7 +257,10 @@ static unsigned int get_next_freq(struct sugov_policy *sg_policy, if (freq == sg_policy->cached_raw_freq && sg_policy->next_freq != UINT_MAX) return sg_policy->next_freq; sg_policy->cached_raw_freq = freq; - return cpufreq_driver_resolve_freq(policy, freq); + freq = cpufreq_driver_resolve_freq(policy, freq); + trace_cpu_frequency_sugov(util, freq, policy->cpu); + + return freq; } static void sugov_get_util(unsigned long *util, unsigned long *max, int cpu) -- 2.20.1