[PATCH tip/core/rcu 0/12]

From: Paul E. McKenney
Date: Thu May 30 2019 - 10:55:47 EST


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