[PATCH 20/36] arch/idle: Change arch_cpu_idle() IRQ behaviour

Arnd Bergmann arnd at arndb.de
Wed Jun 8 09:22:12 PDT 2022


On Wed, Jun 8, 2022 at 4:27 PM Peter Zijlstra <peterz at infradead.org> wrote:
>
> Current arch_cpu_idle() is called with IRQs disabled, but will return
> with IRQs enabled.
>
> However, the very first thing the generic code does after calling
> arch_cpu_idle() is raw_local_irq_disable(). This means that
> architectures that can idle with IRQs disabled end up doing a
> pointless 'enable-disable' dance.
>
> Therefore, push this IRQ disabling into the idle function, meaning
> that those architectures can avoid the pointless IRQ state flipping.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz at infradead.org>

I think you now need to add the a raw_local_irq_disable(); in loongarch
as well.

       Arnd



More information about the linux-riscv mailing list