subsystem: CPU FREQUENCY DRIVERS- Set cpu_load calculation on current frequency
authorrahul.khandelwal <rahul.khandelwal@spreadtrum.com>
Fri, 17 Apr 2015 06:15:23 +0000 (11:45 +0530)
committerJohn Stultz <john.stultz@linaro.org>
Tue, 16 Feb 2016 21:53:09 +0000 (13:53 -0800)
In timer, cpu_load is calcuated on target_freq.
cpu_load = loadadjfreq / pcpu->target_freq;
But cpu is actually running on current freq i.e. pcpu->policy->cur. So cpu_load
should be calculated on current frequency.
cpu_load = loadadjfreq / pcpu->policy->cur;

Change-Id: I89db6b68e9f82aa52077f6bf7d819dab74265790
Signed-off-by: rahul.khandelwal <rahul.khandelwal@spreadtrum.com>
drivers/cpufreq/cpufreq_interactive.c

index 9259d48297654c1c574f39828784c2dce3a1d47c..0be66df4a6e6b5d47fb80768367fe45e7424d87c 100644 (file)
@@ -387,7 +387,7 @@ static void cpufreq_interactive_timer(unsigned long data)
        spin_lock_irqsave(&pcpu->target_freq_lock, flags);
        do_div(cputime_speedadj, delta_time);
        loadadjfreq = (unsigned int)cputime_speedadj * 100;
-       cpu_load = loadadjfreq / pcpu->target_freq;
+       cpu_load = loadadjfreq / pcpu->policy->cur;
        tunables->boosted = tunables->boost_val || now < tunables->boostpulse_endtime;
 
        if (cpu_load >= tunables->go_hispeed_load || tunables->boosted) {