Messages in this thread | | | Subject | Re: [PATCH] cpufreq: CPPC: Correct desired_perf calculation | From | "Prakash, Prashanth" <> | Date | Wed, 12 Oct 2016 09:36:34 -0600 |
| |
Hi Hoan,
On 10/11/2016 3:12 PM, Hoan Tran wrote: > The desired_perf is an abstract performance number. Its value should > be in the range of [lowest perf, highest perf] of CPPC. > The correct calculation is > desired_perf = freq * cppc_highest_perf / cppc_dmi_max_khz > > Signed-off-by: Hoan Tran <hotran@apm.com> > --- > drivers/cpufreq/cppc_cpufreq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c > index 1b2f28f..ab1d4b7 100644 > --- a/drivers/cpufreq/cppc_cpufreq.c > +++ b/drivers/cpufreq/cppc_cpufreq.c > @@ -84,7 +84,7 @@ static int cppc_cpufreq_set_target(struct cpufreq_policy *policy, > > cpu = all_cpu_data[policy->cpu]; > > - cpu->perf_ctrls.desired_perf = (u64)target_freq * policy->max / cppc_dmi_max_khz; > + cpu->perf_ctrls.desired_perf = (u64)target_freq * cpu->perf_caps.highest_perf / cppc_dmi_max_khz; The patch looks good, I suppose we can add a small optimization. We can do a simple check to see if the newly computed desired_perf is same as old one, If it is same we can just return here instead of calling cppc_set_perf with same desired_perf value.
Thanks, Prashanth
| |