Re: [PATCH] cpufreq: Do not schedule policy update work in cpufreq_resume()

From: Rafael J. Wysocki
Date: Wed Mar 16 2016 - 08:29:44 EST


On Wed, Mar 16, 2016 at 5:52 AM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> On 16-03-16, 01:51, Rafael J. Wysocki wrote:
>> OK, so the problem with doing that in syscore ops is that the I2C bus
>> needed for it may not be available at that point, which is fair
>> enough.
>
> Not just that. We wouldn't call syscore-ops for the boot-cpu. It never went
> away.

Yes, we would.

We actually call syscore ops *only* on that CPU.

>> Still, though, the way it is done now is really awful and has to go.
>>
>> I guess something along the lines of cpufreq_update_policy() might be
>> done in cpufreq_resume() before governors are started, but it might
>> even be better to set policy->cur from scratch when starting the
>> governors. Just do driver->get() and set policy->cur to what that
>> returns (or just use the average of min and max if ->get is not
>> available). And that unconditionally, regardless of the reason why
>> the governors are started.
>
> I think doing it from a somewhat centric location would make more sense then
> pushing this for the governors.

I'm not talking about doing that in governors, but in
cpufreq_governor() when the event is _START.

> Maybe the beginning of cpufreq_resume() is good enough for that.

Is that really the only case, though?