On Tue, Sep 29, 2026 at 05:07:18PM +0000, Josef Bacik wrote: > TASKS_TRACE_RCU_NO_MB defaults to ARCH_WANTS_NO_INSTR, on the grounds > (see 1a72f4bb6f3e) that architectures with noinstr entry code only ever > run tracing where RCU is watching and so can dispense with the read-side > smp_mb() in rcu_read_lock_trace() and friends. But the option also > depends on RCU_EXPERT, and a Kconfig default is not applied to a symbol > whose dependencies are unmet, so on an ordinary RCU_EXPERT=n build of > such an architecture the option is simply absent and every Tasks Trace > reader pays for two full barriers that the architecture does not need. > > Keep the prompt behind RCU_EXPERT, so that overriding the default in > either direction remains an expert decision, but let the default itself > apply unconditionally. On x86-64 and arm64 defconfig this turns the > barriers off, as intended; architectures without ARCH_WANTS_NO_INSTR > are unchanged. > > Assisted-by: LLM > Signed-off-by: Josef Bacik <[email protected]>
Reviewed-by: Paul E. McKenney <[email protected]> > --- > kernel/rcu/Kconfig | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig > index 332df7a7a634..e3cfe1fe5592 100644 > --- a/kernel/rcu/Kconfig > +++ b/kernel/rcu/Kconfig > @@ -142,8 +142,8 @@ config TASKS_TRACE_RCU > default n > > config TASKS_TRACE_RCU_NO_MB > - bool "Override RCU Tasks Trace inclusion of read-side memory barriers" > - depends on RCU_EXPERT && TASKS_TRACE_RCU > + bool "Override RCU Tasks Trace inclusion of read-side memory barriers" > if RCU_EXPERT > + depends on TASKS_TRACE_RCU > default ARCH_WANTS_NO_INSTR > help > This option prevents the use of read-side memory barriers in > > -- > 2.55.0 >
