Re: [PATCH x86/entry: Force rcu_irq_enter() when in idle task

From: Andy Lutomirski
Date: Fri Jun 12 2020 - 15:28:17 EST



> On Jun 12, 2020, at 12:25 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> ï"Paul E. McKenney" <paulmck@xxxxxxxxxx> writes:
>>> On Fri, Jun 12, 2020 at 10:49:53AM -0700, Paul E. McKenney wrote:
>>> I will therefore address this issue in a follow-on patch.
>>
>> I should add that -your- patch from yesterday did -not- cause this
>> problem, in case that is of interest.
>
> So I still can add it back and amend the changelog and comment:
>
> Change the condition from !rcu_is_watching() to is_idle_task(current) ||
> rcu_is_watching() which enforces that interrupts in the idle task
> unconditionally invoke rcu_irq_enter() independent of the RCU state. For
> most scenarios is_idle_task() would be sufficient but Task RCU needs it
> according to Paul.
>
>

Can you easily get a call trace for a case where the system is fully booted, is_idle_task returns false, and rcu_is_watching() also returns false?