Messages in this thread | | | Date | Fri, 4 Feb 2022 15:20:27 -0800 | From | "Paul E. McKenney" <> | Subject | [PATCH rcu 0/5] Extricate rcu_barrier() from CPU hotplug |
| |
Hello!
This series reworks rcu_barrier() to remove its calls to cpus_read_lock() and cpus_read_unlock(). This improves modularity, gets rid of an acquisition of a wide-spectrum synchronization mechanism, and allows rcu_barrier() to be invoked from CPU-hotplug notifiers that permit blocking. Not that this last is necessarily a good idea.
1. Kill rnp->ofl_seq and use only rcu_state.ofl_lock for exclusion, courtesy of David Woodhouse.
2. Refactor rcu_barrier() empty-list handling.
3. Rework rcu_barrier() and callback-migration logic.
4. Make rcu_barrier() no longer block CPU-hotplug operations.
5. Create and use an rcu_rdp_cpu_online().
Thanx, Paul
------------------------------------------------------------------------
b/include/trace/events/rcu.h | 9 +- b/kernel/rcu/tree.c | 71 ++++++++++---------- b/kernel/rcu/tree.h | 4 - b/kernel/rcu/tree_plugin.h | 6 - kernel/rcu/tree.c | 151 +++++++++++++++++++++++++++---------------- kernel/rcu/tree.h | 5 + 6 files changed, 143 insertions(+), 103 deletions(-)
| |