Hello! This series provides yet more cleanups and fixes for the RCU flavor consolidation effort:
1. Enable elimination of Tree-RCU softirq processing, courtesy of Sebastian Andrzej Siewior. (More along the lines of real-time than consolidation, but placed here to avoid conflicts.) 2. Check for wakeup-safe conditions in rcu_read_unlock_special(). 3. Only do rcu_read_unlock_special() wakeups if expedited. 4. Allow rcu_read_unlock_special() to raise_softirq() if in_irq(). 5. Use irq_work to get scheduler's attention in clean context. 6. Inline invoke_rcu_callbacks() into its sole remaining caller. 7. Avoid self-IPI in sync_rcu_exp_select_node_cpus(). 8. Avoid self-IPI in sync_sched_exp_online_cleanup(). 9. Add assertion to check if in an interrupt, courtesy of Joel Fernandes. 10. Add checks for dynticks counters in rcu_is_cpu_rrupt_from_idle(), courtesy of Joel Fernandes. 11. Rename rcu_data's ->deferred_qs to ->exp_deferred_qs. 12. Remove unused rdp local from synchronize_rcu_expedited(), courtesy of Jiang Biao. Thanx, Paul ------------------------------------------------------------------------ Documentation/admin-guide/kernel-parameters.txt | 6 include/linux/lockdep.h | 7 include/linux/sched.h | 2 kernel/rcu/tree.c | 179 +++++++++++++++++---- kernel/rcu/tree.h | 6 kernel/rcu/tree_exp.h | 50 ++++- kernel/rcu/tree_plugin.h | 201 +++++++----------------- 7 files changed, 267 insertions(+), 184 deletions(-)