Re: [RFC v0 2/9] suspend: Add getter function to report if freezing is active

Daniel Wagner
2015-09-08T08:19:42Z

On 09/07/2015 11:44 PM, Rafael J. Wysocki wrote:
> On Monday, September 07, 2015 10:55:43 AM Daniel Wagner wrote:
>> On 09/05/2015 04:11 AM, Rafael J. Wysocki wrote:
>>> On Friday, September 04, 2015 03:34:55 PM Daniel Wagner wrote:
>>>> Instead encode the FREEZE state via the CPU state we allow the
>>>> interesting subsystems (MCE, microcode) to query the power
>>>> subsystem directly.
>>>
>>> A use case, please.
>>
>> The motivation for this change is to reduce the complexity in the
>> hotplug code. As tried to point out in the cover letter, the FROZEN
>> bits have only a bunch of users after all those years (2007). So it is
>> worth to have all the notifier users to handle the FROZEN state?
>>
>> Don't know if that counts as use case.
>
> Well, the code you're changing has nothing to do with CPU hotplug and
> CPU_TASKS_FROZEN. It is about suspend-to-idle.
>
> Please grep for suspend_freeze_state and see what it is used for.
>
> There is some confusion in the naming, but that is about the freezing of
> the whole system, while CPU_TASKS_FROZEN is about the freezing of user space.

You are right. I got confused by all those frozen/freezing naming scheme.

>>>> Most notifiers are not interested at all
>>>> in this information so rather have explicit calls to freeze_active()
>>>> instead adding complexity to the rest of the users of the CPU
>>>> notifiers.
>>>
>>> Why does it has anything to do with CPU notifiers?
>>
>> cpu_{down|up} will call the notifiers with the CPU_TASK_FROZEN bit set
>> and so most notifiers are doing
>>
>> switch (actcion ~CPU_TASK_FROZEN)
>>
>> to filter it out because they don't need to handle the system wide
>> ongoing freeze operations.
>>
>>> We don't offline CPUs for suspend-to-idle.
>>
>> Sure. As I said the motivation is to reduce the complexity in the
>> hotplug code.
>
> You need to fine a different way to do that.

I'll try something else.

Thanks for taking the time explaining!

cheers,
Daniel