Re: [PATCH] cpuidle:powernv: Make the snooze timeout dynamic.

From: Stewart Smith
Date: Mon Jun 04 2018 - 23:48:14 EST


Michael Ellerman <mpe@xxxxxxxxxxxxxx> writes:
> "Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx> writes:
>
>> From: "Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx>
>>
>> The commit 78eaa10f027c ("cpuidle: powernv/pseries: Auto-promotion of
>> snooze to deeper idle state") introduced a timeout for the snooze idle
>> state so that it could be eventually be promoted to a deeper idle
>> state. The snooze timeout value is static and set to the target
>> residency of the next idle state, which would train the cpuidle
>> governor to pick the next idle state eventually.
>>
>> The unfortunate side-effect of this is that if the next idle state(s)
>> is disabled, the CPU will forever remain in snooze, despite the fact
>> that the system is completely idle, and other deeper idle states are
>> available.
>
> That sounds like a bug, I'll add?
>
> Fixes: 78eaa10f027c ("cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state")
> Cc: stable@xxxxxxxxxxxxxxx # v4.2+

Yes, it's a bug - we had a customer bug because we lacked this that
meant we had to do firmware changes rather than just tweaking what stop
states were used.

--
Stewart Smith
OPAL Architect, IBM.