On Sun, Sep 13, 2026 at 12:28:59PM +0100, David Laight wrote:
On Sat, 12 Sep 2026 15:31:24 -0700
"Paul E. McKenney" [off-list ref] wrote:
quoted
On Sat, Sep 12, 2026 at 10:14:00PM +0100, David Laight wrote:
quoted
On Sat, 12 Sep 2026 11:03:34 -0700
"Paul E. McKenney" [off-list ref] wrote:
quoted
In the old kernels, yes, we have current->trc_reader_nesting++.
In the newer kernels, Tasks Trace RCU is instead implemented in terms
of SRCU-fast, which instead increments per-CPU counters. Which among
other thins is a bit faster and does not need to hook into the scheduler.
Isn't that rather architecture dependant?
It is fine on x86, but on arm incrementing a per-cpu variable is
significantly expensive.
Last I heard, slow ARM increments of per-CPU variables were to be a
transitory phenomemon. Plus changes late last year greatly sped up the
per-CPU increment operations.
There are some unapplied patches to improve per-cpu operations for both
arm64 and s390.
Without those preemption has to be disabled (in current->xxx) which requires
a conditional call in the preempt enable path.
These are on top of the patches that provided an order of magnitude
improvement late last year? Very cool if so!
Thanx, Paul
David
quoted
Plus this change removed some hundreds
of lines of RCU code.
Thanx, Paul