Re: [PATCH] rcu: per-cpu rcuc kthread are created only when rcutree.use_softirq=0

From: Paul E. McKenney
Date: Sat Jan 01 2022 - 11:44:48 EST


On Wed, Dec 29, 2021 at 12:05:10AM +0800, Zqiang wrote:
> In non-RT kernel, if the RCU_BOOST is enabled, the per-cpu rcuc
> kthread will be created, however under the rcutree.use_softirq=1,
> the RCU core processing only in softirq context, the rcuc kthread
> doesn't do anything, so remove RCU_BOOST interference.
>
> Signed-off-by: Zqiang <qiang1.zhang@xxxxxxxxx>

Looks sane to me, but adding Sebastian on CC for his thoughts.

Thanx, Paul

> ---
> kernel/rcu/tree.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index 9b58bae0527a..ed64b4fcb8a0 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -2902,7 +2902,7 @@ static int __init rcu_spawn_core_kthreads(void)
>
> for_each_possible_cpu(cpu)
> per_cpu(rcu_data.rcu_cpu_has_work, cpu) = 0;
> - if (!IS_ENABLED(CONFIG_RCU_BOOST) && use_softirq)
> + if (use_softirq)
> return 0;
> WARN_ONCE(smpboot_register_percpu_thread(&rcu_cpu_thread_spec),
> "%s: Could not start rcuc kthread, OOM is now expected behavior\n", __func__);
> --
> 2.25.1
>