Re: [PATCH] cpufreq: Skip all governor-related actions for cpufreq_suspended set

From: Rafael J. Wysocki
Date: Thu Apr 07 2016 - 07:22:46 EST


On Thu, Apr 7, 2016 at 6:28 AM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> On 07-04-16, 03:29, Rafael J. Wysocki wrote:
>> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>>
>> Since governor operations are generally skipped if cpufreq_suspended
>> is set, do nothing at all in cpufreq_start_governor() and
>> cpufreq_exit_governor() in that case.
>>
>> In particular, this prevents fast frequency switching from being
>> disabled after a suspend-to-RAM cycle on all CPUs except for the
>> boot one.
>
> static int cpufreq_governor(struct cpufreq_policy *policy, unsigned int event)
> {
> int ret;
>
> /* Don't start any governor operations if we are entering suspend */
> if (cpufreq_suspended)
> return 0;
>
> ...
>
> }
>
> Above already guarantees that we would start/stop governors. Why do we
> need this change then ?

Because we do extra stuff in cpufreq_start_governor() and
cpufreq_exit_governor() that *also* shouldn't be done if
cpufreq_suspended is set.