Re: [PATCH 4/6] rcu/nocb: Create kthreads on all CPUs if "rcu_nocb=" or "nohz_full=" are passed

From: Frederic Weisbecker
Date: Thu Dec 02 2021 - 13:03:35 EST


On Wed, Dec 01, 2021 at 02:57:18PM +0530, Neeraj Upadhyay wrote:
>
>
> On 11/23/2021 6:07 AM, Frederic Weisbecker wrote:
> > In order to be able to (de-)offload any CPU using cpuset in the future,
> > create a NOCB kthread for all possible CPUs. For now this is done only
> > as long as the "rcu_nocb=" or "nohz_full=" kernel parameters are passed
> > to avoid the unnecessary overhead for most users.
> >
> > Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
> > Cc: Neeraj Upadhyay <quic_neeraju@xxxxxxxxxxx>
> > Cc: Boqun Feng <boqun.feng@xxxxxxxxx>
> > Cc: Uladzislau Rezki <urezki@xxxxxxxxx>
> > Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> > Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
> > ---
>
> Reviewed-by: Neeraj Upadhyay <quic_neeraju@xxxxxxxxxxx>
>
>
> > kernel/rcu/tree_nocb.h | 14 ++++++--------
> > 1 file changed, 6 insertions(+), 8 deletions(-)
> >
> > diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h
> > index d8ed3ee47a67..9d37916278d4 100644
> > --- a/kernel/rcu/tree_nocb.h
> > +++ b/kernel/rcu/tree_nocb.h
> > @@ -1229,11 +1229,8 @@ static void rcu_spawn_one_nocb_kthread(int cpu)
> > struct rcu_data *rdp_gp;
> > struct task_struct *t;
> > - /*
> > - * If this isn't a no-CBs CPU or if it already has an rcuo kthread,
> > - * then nothing to do.
> > - */
> > - if (!rcu_is_nocb_cpu(cpu) || rdp->nocb_cb_kthread)
>
> As rcu_is_nocb_cpu() does not have a user, we can probably remove it?

Ah nice, I'll check that.

Thanks!