Re: [PATCH] s390/idle: Fix suspicious RCU usage

From: Peter Zijlstra
Date: Wed Oct 07 2020 - 06:06:03 EST


On Wed, Oct 07, 2020 at 09:53:25AM +0200, Sven Schnelle wrote:
> Hi Peter,
>
> peterz@xxxxxxxxxxxxx writes:
>
> > After commit eb1f00237aca ("lockdep,trace: Expose tracepoints") the
> > lock tracepoints are visible to lockdep and RCU-lockdep is finding a
> > bunch more RCU violations that were previously hidden.
> >
> > Switch the idle->seqcount over to using raw_write_*() to avoid the
> > lockdep annotation and thus the lock tracepoints.
> >
> > Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > [..]
>
> I'm still seeing the splat below on s390 when irq tracing is enabled:

Damn... :/

This one is tricky, trouble seems to be that arch_cpu_idle() is defined
to enable interrupts (no doubt because ot x86 :/), but we call it before
rcu_exit_idle().

What a mess... let me rummage around the various archs to see what makes
most sense here.