[PATCH RFC tip/core/rcu 0/2] RCU consolidation patches

From: Paul E. McKenney
Date: Wed Jun 27 2018 - 16:46:46 EST


Hello!

This series is a sneak preview of a pair of patches that does the actual
consolidation of RCU-bh and RCU-sched functionality into RCU-preempt.
This does pass some light rcutorture testing, but left unattended will
no doubt do unspeakable things to your pets, your loved ones, and your
household devices. Once fully debugged, this patch set will be followed
up with a cleanup series that actually removes RCU-bh and RCU-sched.
In the meantime:

1. Make RCU-preempt treat disabling of interrupts, preemption,
and/or softirq as read-side critical sections. Most of the
complexity deals with composite read-side critical sections in
which sometimes preemption is disabled, other times there is an
rcu_read_lock() in force, yet other times interrupts are disabled,
and so on.

2. Make the "rcu" torture type create composite read-side critical
sections in order to test #1 above.

There is some faint hope of these going into the next merge window,
but it is far more likely that bug fixing will take longer than that,
pushing them into the merge window following the next one. Furthermore,
without the cleanup patches, the actual goal of having only one flavor
of RCU is not met. Besides, given the large number of patches already
slated for the next merge window, deferring any additional patches might
not be such a bad idea anyway.

Thanx, Paul

------------------------------------------------------------------------

Documentation/RCU/Design/Requirements/Requirements.html | 50 ++---
include/linux/rcutiny.h | 5
kernel/rcu/rcutorture.c | 1
kernel/rcu/tree.c | 9 +
kernel/rcu/tree.h | 3
kernel/rcu/tree_exp.h | 71 ++++++--
kernel/rcu/tree_plugin.h | 138 +++++++++++-----
7 files changed, 200 insertions(+), 77 deletions(-)