Re: [PATCH] cpuidle:powernv: Add the CPUIDLE_FLAG_POLLING for snooze

From: Michael Ellerman
Date: Thu Jul 05 2018 - 02:00:39 EST


Gautham R Shenoy <ego@xxxxxxxxxxxxxxxxxx> writes:
> On Tue, Jul 03, 2018 at 07:36:16PM +0530, Vaidyanathan Srinivasan wrote:
>> * Gautham R Shenoy <ego@xxxxxxxxxxxxxxxxxx> [2018-07-03 10:54:16]:
>>
>> > From: "Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx>
>> >
>> > In the situations where snooze is the only cpuidle state due to
>> > firmware not exposing any platform idle states, the idle CPUs will
>> > remain in snooze for a long time with interrupts disabled causing the
>> > Hard-lockup detector to complain.
>>
>> snooze_loop() will spin in SMT low priority with interrupt enabled. We
>> have local_irq_enable() before we get into the snooze loop.
>> Since this is a polling state, we should wakeup without an interrupt
>> and hence we set TIF_POLLING_NRFLAG as well.
>>
>
> You are right. We have a local_irq_enable() inside the snooze_loop.
>>
>> > watchdog: CPU 51 detected hard LOCKUP on other CPUs 59
>> > watchdog: CPU 51 TB:535296107736, last SMP heartbeat TB:527472229239 (15281ms ago)
>> > watchdog: CPU 59 Hard LOCKUP
>> > watchdog: CPU 59 TB:535296252849, last heartbeat TB:526554725466 (17073ms ago)
>>
>> hmm.. not sure why watchdog will complain, maybe something more is
>> going on.
>
> Will look into this Vaidy.

I'll wait for a v2.

cheers