Re: [PATCH] cpufreq: ondemand: Change the calculation of target frequency

From: Rafael J. Wysocki
Date: Sat Jun 01 2013 - 15:29:11 EST

On Saturday, June 01, 2013 08:26:47 PM Viresh Kumar wrote:
> On 31 May 2013 22:03, Stratos Karafotis <stratosk@xxxxxxxxxxxx> wrote:
> > On 05/31/2013 11:51 AM, Viresh Kumar wrote:
> >> I believe you should have removed other users of getavg() in a separate
> >> patch and also cc'd relevant people so that you can some review comments
> >> from them.
> >
> > I will split the patch in two. If it's OK, I will keep the removal of
> > __cpufreq_driver_getavg in the original patch and move the clean up of
> > APERF/MPERF support in a second patch. I will also cc relevant people.
> Even removal of __cpufreq_driver_getavg() should be done in a separate
> patch, so that it can be reverted easily if required later.

Why would you want to revert it separately?

> >> "Proportional to load" means C * load, so why is "policy->max / 100" *the* right C?
> >
> > I think, finally(?) I see your point. The right C should be "policy->cpuinfo.max_freq / 100".
> Why are you changing it to cpuinfo.max_freq?? This is fixed once a driver is
> initialized.. but user may request a lower max freq for a governor or policy.
> Which is actually reflected in policy->max I believe.

Which doesn't matter. The formula should provide the same results regardless
of the user settings except that the selected frequency should be capped by
policy->max (instead of being proportional to it). I think using
cpuinfo.max_freq here is correct.

> Over that why keeping following check is useful anymore?
> if (load_freq > od_tuners->up_threshold)
> goto max.
> As, if load is over 95, then even policy->max * 95 / 100 will even give almost
> the same freq.

Yes, in the majority of cases.


I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at