[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(-)