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

From: Michael Ellerman
Date: Tue Jun 05 2018 - 08:18:53 EST

Gautham R Shenoy <ego@xxxxxxxxxxxxxxxxxx> writes:
> Hello Michael,
> On Mon, Jun 04, 2018 at 09:27:40PM +1000, Michael Ellerman wrote:
>> "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?
> Yes, this is a bug-fix for a customer scenario which we encountered
> recently.

OK, the change log could have used some more scary words to make that
clearer ;)

I changed the subject to:

cpuidle: powernv: Fix promotion from snooze if next state disabled

Which hopefully makes sense.

>> Fixes: 78eaa10f027c ("cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state")
>> Cc: stable@xxxxxxxxxxxxxxx # v4.2+
> This patch applies cleanly from v4.13 onwards. Prior to that there are
> some (minor) conflicts.
> Should I spin a version separately for the prior stable versions ?

Yes please, that would be great.

You might want to avoid "=====" in the change log too, as patchwork and
possibly other tools will think it's part of the diff.