On Wed, 2019-09-11 at 17:57 +0100, Scott Wood wrote: > kernel/rcu/tree.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index fc8b00c61b32..ee0a5ec2c30f 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -98,9 +98,14 @@ struct rcu_state rcu_state = { > /* Dump rcu_node combining tree at boot to verify correct setup. */ > static bool dump_tree; > module_param(dump_tree, bool, 0444); > -/* By default, use RCU_SOFTIRQ instead of rcuc kthreads. */ > -static bool use_softirq = 1; > +/* > + * By default, use RCU_SOFTIRQ instead of rcuc kthreads. > + * But, avoid RCU_SOFTIRQ on PREEMPT_RT due to pi/rq deadlocks. > + */ > +static bool use_softirq = !IS_ENABLED(CONFIG_PREEMPT_RT_FULL); > +#ifdef CONFIG_PREEMPT_RT_FULL > module_param(use_softirq, bool, 0444); > +#endif Ugh, that should be s/ifdef/ifndef/ -Scott