[PATCH tip/core/rcu 0/10] No-CBs contention-reduction updates for v5.3-rc2
From: Paul E. McKenney
Date: Thu Aug 01 2019 - 19:16:28 EST
Hello!
This series partially addresses lock-contention increases caused by the
move to the ->cblist segmented callback list.
1. Enable re-awakening under high callback load.
2. Never downgrade ->nocb_defer_wakeup in wake_nocb_gp_defer().
3. Make __call_rcu_nocb_wake() safe for many callbacks.
4. Avoid needless wakeups of no-CBs grace-period kthread.
5. Avoid ->nocb_lock capture by corresponding CPU.
6. Round down for number of no-CBs grace-period kthreads.
7. Reduce contention at no-CBs registry-time CB advancement.
8. Reduce contention at no-CBs invocation-done time.
9. Reduce ->nocb_lock contention with separate ->nocb_gp_lock.
10. Unconditionally advance and wake for excessive CBs.
Thanx, Paul
------------------------------------------------------------------------
tree.c | 20 ++++++++-
tree.h | 21 ++++++++-
tree_plugin.h | 128 ++++++++++++++++++++++++++++++++++++----------------------
3 files changed, 118 insertions(+), 51 deletions(-)