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