From 7c789dabc839a42a7a2c75fd988060ae0478b2e8 Mon Sep 17 00:00:00 2001 From: zhengding chen Date: Wed, 3 Nov 2021 11:40:01 +0800 Subject: [PATCH] ANDROID: cpufreq: times: record fast switch frequency transitions cpufreq_times_record_transition() is not called when fast switch is enabled, leading /proc/[pid]/time_in_state to attribute all time on a cluster to a single frequency. To fix this, add a call to cpufreq_times_record_transition() in the fast switch path. Test: /proc/[pid]/time_in_state shows times for more than one freq per cluster Fixes: Ia6456754f4c ("ANDROID: cpufreq: track per-task time in state") Bug: 204726690 Signed-off-by: zhengding chen Change-Id: Ief47ffb49fcc7fbf5408eea3056930e8791d2820 (cherry picked from commit 0c053ab6fb902a6e721c36d4ff34419b04ae9548) --- drivers/cpufreq/cpufreq.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 97c3fc20f1a0..7456e3598c2b 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -2196,6 +2196,7 @@ unsigned int cpufreq_driver_fast_switch(struct cpufreq_policy *policy, arch_set_freq_scale(policy->related_cpus, freq, arch_scale_freq_ref(policy->cpu)); cpufreq_stats_record_transition(policy, freq); + cpufreq_times_record_transition(policy, freq); trace_android_rvh_cpufreq_transition(policy); if (trace_cpu_frequency_enabled()) {