Hello! This series provides updates to RCU's expedited grace periods: 1. Use *_ONCE() to protect lockless ->expmask accesses. 2. Avoid modifying mask_ofl_ipi in sync_rcu_exp_select_node_cpus(), courtesy of Boqun Feng. 3. Fix data-race due to atomic_t copy-by-value, courtesy of Marco Elver. 4. Lookup instead of bit-twiddling in sync_rcu_exp_select_node_cpus(). 5. Fix missed wakeup of exp_wq waiters, courtesy of Neeraj Upadhyay. 6. Allow only one expedited GP to run concurrently with wakeups, courtesy of Neeraj Upadhyay. 7. Rename sync_rcu_preempt_exp_done() to sync_rcu_exp_done(). 8. Update tree_exp.h function-header comments. 9. Replace synchronize_sched_expedited_wait() "_sched" with "_rcu". 10. Enable tick for nohz_full CPUs slow to provide expedited QS. Thanx, Paul ------------------------------------------------------------------------ include/linux/tick.h | 5 + include/trace/events/rcu.h | 4 - kernel/rcu/tree.c | 11 +-- kernel/rcu/tree.h | 1 kernel/rcu/tree_exp.h | 149 +++++++++++++++++++++++++++------------------ kernel/rcu/tree_plugin.h | 4 - 6 files changed, 107 insertions(+), 67 deletions(-)