With these patches, rcutorture mostly works on PREEMPT_RT_FULL. I still once in a while get forward progress complaints (particularly, rcu_torture_fwd_prog_cr) when a grace period is held up for a few seconds after which point so many callbacks have been enqueued that even making reasonable progress isn't going to beat the timeout. I believe I've only seen this when running heavy loads in addition to rcutorture (though I've done more testing under load than without); I don't know whether the forward progress tests are expected to work under such load. Scott Wood (4): rcu: Acquire RCU lock when disabling BHs sched: migrate_enable: Use sleeping_lock to indicate involuntary sleep rcu: unlock special: Treat irq and preempt disabled the same rcutorture: Avoid problematic critical section nesting include/linux/rcupdate.h | 4 +++ include/linux/sched.h | 4 +-- kernel/rcu/rcutorture.c | 92 ++++++++++++++++++++++++++++++++++++++++-------- kernel/rcu/tree_plugin.h | 12 ++----- kernel/rcu/update.c | 4 +++ kernel/sched/core.c | 2 ++ kernel/softirq.c | 12 +++++-- 7 files changed, 102 insertions(+), 28 deletions(-) -- 1.8.3.1