On 2019-03-19 12:44:19 [+0100], To Paul E. McKenney wrote: > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 0f31b79eb6761..0a719f726e149 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c … > +/* > + * Spawn per-CPU RCU core processing kthreads. > + */ > +static int __init rcu_spawn_core_kthreads(void) > +{ > + int cpu; > + > + for_each_possible_cpu(cpu) > + per_cpu(rcu_data.rcu_cpu_has_work, cpu) = 0; > + if (!IS_ENABLED(CONFIG_RCU_BOOST) && !rcu_softirq_enabled)
and this needs to become - if (!IS_ENABLED(CONFIG_RCU_BOOST) && !rcu_softirq_enabled) + if (!IS_ENABLED(CONFIG_RCU_BOOST) && rcu_softirq_enabled) With this change and hunk that I just sent to Joel I get thee three RCU modes with and without BOOST booted. Unless there is something (and Paul agrees that the Joel hunk is correct) I would post a v3 with those changes included. > + return 0; > + WARN_ONCE(smpboot_register_percpu_thread(&rcu_cpu_thread_spec), "%s: > Could not start rcub kthread, OOM is now expected behavior\n", __func__); > + return 0; > +} > +early_initcall(rcu_spawn_core_kthreads); Sebastian