Re: [PATCH] tick/idle/powerpc: Do not register idle states with CPUIDLE_FLAG_TIMER_STOP set in periodic mode

From: Michael Ellerman
Date: Wed Jun 24 2015 - 18:10:51 EST




On 24 June 2015 23:50:40 GMT+10:00, "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx> wrote:
>On Wednesday, June 24, 2015 01:48:01 AM Preeti U Murthy wrote:
>> On some archs, the local clockevent device stops in deep cpuidle
>states.
>> The broadcast framework is used to wakeup cpus in these idle states,
>in
>> which either an external clockevent device is used to send wakeup
>ipis
>> or the hrtimer broadcast framework kicks in in the absence of such a
>> device. One cpu is nominated as the broadcast cpu and this cpu sends
>> wakeup ipis to sleeping cpus at the appropriate time. This is the
>> implementation in the oneshot mode of broadcast.
>>
>> In periodic mode of broadcast however, the presence of such cpuidle
>> states results in the cpuidle driver calling tick_broadcast_enable()
>> which shuts down the local clockevent devices of all the cpus and
>> appoints the tick broadcast device as the clockevent device for each
>of
>> them. This works on those archs where the tick broadcast device is a
>> real clockevent device. But on archs which depend on the hrtimer
>mode
>> of broadcast, the tick broadcast device hapens to be a pseudo device.
>> The consequence is that the local clockevent devices of all cpus are
>> shutdown and the kernel hangs at boot time in periodic mode.
>>
>> Let us thus not register the cpuidle states which have
>> CPUIDLE_FLAG_TIMER_STOP flag set, on archs which depend on the
>hrtimer
>> mode of broadcast in periodic mode. This patch takes care of doing
>this
>> on powerpc. The cpus would not have entered into such deep cpuidle
>> states in periodic mode on powerpc anyway. So there is no loss here.
>>
>> Signed-off-by: Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>
>
>4.2 material I suppose?

Yes please, in fact it should be marked for stable too.

cheers
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/