Re: [GIT pull] locking/urgent for v5.10-rc6

From: Peter Zijlstra
Date: Tue Dec 01 2020 - 09:56:06 EST


On Tue, Dec 01, 2020 at 06:46:44AM -0800, Paul E. McKenney wrote:

> > So after having talked to Sven a bit, the thing that is happening, is
> > that this is the one place where we take interrupts with RCU being
> > disabled. Normally RCU is watching and all is well, except during idle.
>
> Isn't interrupt entry supposed to invoke rcu_irq_enter() at some point?
> Or did this fall victim to recent optimizations?

It does, but the problem is that s390 is still using
trace_hardirqs_off(), which calls into tracing before RCU is enabled.

The entry order between lockdep, rcu and tracing is critical.

You can't call into tracing without RCU running,
you can't call into RCU without lockdep setup,
you can't call the (old) lockdep setup without landing in tracing.