[PATCH tip/core/rcu 0/6] Track callbacks on a per-segment basis

Paul E. McKenney
2021-01-06T01:26:38Z

Hello!

This series adds counts to the rcu_segcblist structure that track the
number of callbacks in each segment, allowing RCU to distinguish between
(for example) a need to get grace periods done or get callbacks invoked
(or, for that matter, both).

1. Make rcu_do_batch count how many callbacks were executed,
courtesy of "Joel Fernandes (Google)".

2. Add additional comments to explain smp_mb(), courtesy of "Joel
Fernandes (Google)".

3. Add counters to segcblist datastructure, courtesy of "Joel
Fernandes (Google)".

4. segcblist: Remove redundant smp_mb()s, courtesy of "Joel Fernandes
(Google)".

5. Add tracing for how segcb list changes, courtesy of "Joel
Fernandes (Google)".

6. Add debug checks for segment lengths, courtesy of "Joel Fernandes
(Google)".

Thanx, Paul

------------------------------------------------------------------------

include/linux/rcu_segcblist.h | 1
include/trace/events/rcu.h | 26 +++++
kernel/rcu/rcu_segcblist.c | 203 +++++++++++++++++++++++++++++++-----------
kernel/rcu/rcu_segcblist.h | 6 -
kernel/rcu/srcutree.c | 5 -
kernel/rcu/tree.c | 29 ++++--
6 files changed, 209 insertions(+), 61 deletions(-)