[PATCH 0/12] Expediting normal RCU callbacks
"Paul E. McKenney" <[email protected]> Thu, 30 Jul 2026 17:57:26 -0700
| Newsgroups | org.kernel.vger.rcu,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <58bcd561-0520-43ff-95b0-1ed10e1e3bff@paulmck-laptop> |
Hello! This series advances normal RCU callbacks when an expedited RCU grace period elapses, thus reducing memory-reclamation latency. This allows synchronize_rcu_expedited() to be used to speed up reclamation of RCU-protected memory. The series is as follows: 1. Remove unused rdp parameter from trace_rcu_this_gp(), courtesy of Joel Fernandes. 2. Rename struct rcu_gp_oldstate to rcu_gp_seq, courtesy of Puranjay Mohan. 3. Add SRCU and Tasks RCU wrapper functions, courtesy of Puranjay Mohan. 4. Factor out rcu_segcblist_advance_compact() helper, courtesy of Puranjay Mohan. 5. Track segment grace periods with struct rcu_gp_seq, courtesy of Puranjay Mohan. 6. Add RCU_GET_STATE_NOT_TRACKED for subsystems without expedited GPs, courtesy of Puranjay Mohan. 7. Enable RCU callbacks to benefit from expedited grace periods, courtesy of Puranjay Mohan. 8. Update comments for gp_seq and expedited GP tracking, courtesy of Puranjay Mohan. 9. Wake NOCB rcuog kthreads on expedited grace period completion, courtesy of Puranjay Mohan. 10. Detect expedited grace period completion in rcu_pending(), courtesy of Puranjay Mohan. 11. Advance callbacks for expedited GP completion in rcu_core(), courtesy of Puranjay Mohan. 12. Add concurrent expedited GP threads for callback scaling tests, courtesy of Puranjay Mohan. Thanx, Paul ------------------------------------------------------------------------ b/include/linux/rcu_segcblist.h | 2 b/include/linux/rcupdate.h | 13 ++- b/include/linux/rcupdate_wait.h | 2 b/include/linux/rcutiny.h | 36 +++----- b/include/linux/rcutree.h | 29 ++---- b/include/trace/events/rcu.h | 5 - b/kernel/rcu/rcu.h | 13 ++- b/kernel/rcu/rcu_segcblist.c | 10 ++ b/kernel/rcu/rcu_segcblist.h | 2 b/kernel/rcu/rcuscale.c | 84 +++++++++++++++++++ b/kernel/rcu/rcutorture.c | 30 +++---- b/kernel/rcu/srcutree.c | 14 +-- b/kernel/rcu/tasks.h | 8 - b/kernel/rcu/tiny.c | 4 b/kernel/rcu/tree.c | 23 ++--- b/kernel/rcu/tree.h | 3 b/kernel/rcu/tree_exp.h | 18 ++-- b/kernel/rcu/tree_nocb.h | 4 b/mm/slab_common.c | 6 - include/linux/rcu_segcblist.h | 14 +-- kernel/rcu/rcu_segcblist.c | 147 ++++++++++++++++++++++------------ kernel/rcu/rcu_segcblist.h | 8 - kernel/rcu/tree.c | 171 +++++++++++++++++++++++++--------------- kernel/rcu/tree_exp.h | 2 kernel/rcu/tree_nocb.h | 138 ++++++++++++++++++++++++-------- 25 files changed, 528 insertions(+), 258 deletions(-)