Re: [PATCH 3/4] ARM: imx6q: Fix missing need_resched() check after rcu_idle_enter()
From: Fabio Estevam
Date: Mon Jan 04 2021 - 10:58:47 EST
Hi Frederic,
On Mon, Jan 4, 2021 at 12:21 PM Frederic Weisbecker <frederic@xxxxxxxxxx> wrote:
>
> Entering RCU idle mode may cause a deferred wake up of an RCU NOCB_GP
> kthread (rcuog) to be serviced.
>
> Usually a wake up happening while running the idle task is spotted in
> one of the need_resched() checks carefully placed within the idle loop
> that can break to the scheduler.
>
> Unfortunately imx6q_enter_wait() is beyond the last generic
> need_resched() check and it performs a wfi right away after the call to
> rcu_idle_enter(). We may halt the CPU with a resched request unhandled,
> leaving the task hanging.
>
> Fix this with performing a last minute need_resched() check after
> calling rcu_idle_enter().
Shouldn't tif_need_resched() be used instead of need_resched() in the
commit log?