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