Re: [PATCH 03/21] rcu: Add a note about noinstr VS unsafe eqs functions

From: Paul E. McKenney
Date: Thu May 19 2022 - 11:26:26 EST


On Thu, May 19, 2022 at 04:54:38PM +0200, Peter Zijlstra wrote:
> On Tue, May 03, 2022 at 12:00:33PM +0200, Frederic Weisbecker wrote:
> > Some RCU functions enter or exit into/from RCU idle mode while using
> > trace-able and lockdep-aware IRQs (un-)masking. This could be easily
> > solved with using raw versions of local_irq_*() but we would then
> > lose some precious debugging informations.
> >
> > Another possible way to solve this may consist in using rude RCU-tasks
> > in lockdep and irqsoff tracing.
> >
> > In any case and until this get solved, those RCU functions can't get
> > tagged as noinstr even though they should.
>
> FWIW, this also means RCU_NONIDLE() is broken. Luckily there aren't many
> users left.

More to the point, rcu_irq_enter_irqson() and rcu_irq_exit_irqson() need
the same help that rcu_idle_enter() and rcu_idle_exit() got earlier this
week [1], independent of RCU_NONIDLE().

Unless Frederic beats me to it, I will queue something up.

Thanx, Paul

[1] https://lore.kernel.org/all/20220518162118.GA2661055@paulmck-ThinkPad-P17-Gen-1/