From: Viresh Kumar Date: Tue, 6 Jan 2015 15:39:14 +0000 (+0530) Subject: cpufreq: stats: don't update stats on false notifiers X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=e73476949c6d1e2edd04bbf7b5bae30afa370e33;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git cpufreq: stats: don't update stats on false notifiers We need to call cpufreq_stats_update() to update 'time_in_state' for the last frequency. This is achieved by calling it from cpufreq_stat_notifier_trans(), which is called after frequency transition. But if we detect that the cpu's frequency haven't really changed and its a false POSTCHANGE notification, we don't really need to update time_in_state. It wouldn't cause any harm in calling cpufreq_stats_update() but we can avoid calling it here and call it when the frequency really changes. The result will be the same but more efficient. Reviewed-by: Prarit Bhargava Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c index 4cd261156fff..c948086a332b 100644 --- a/drivers/cpufreq/cpufreq_stats.c +++ b/drivers/cpufreq/cpufreq_stats.c @@ -289,11 +289,11 @@ static int cpufreq_stat_notifier_trans(struct notifier_block *nb, if (old_index == -1 || new_index == -1) goto put_policy; - cpufreq_stats_update(stats); - if (old_index == new_index) goto put_policy; + cpufreq_stats_update(stats); + spin_lock(&cpufreq_stats_lock); stats->last_index = new_index; #ifdef CONFIG_CPU_FREQ_STAT_DETAILS