Re: [RFC PATCH 4/4] cpuset: Support RCU-NOCB toggle on v2 root partitions

From: Frederic Weisbecker
Date: Thu May 26 2022 - 18:51:53 EST


On Thu, May 26, 2022 at 08:21:13AM -1000, Tejun Heo wrote:
> On Thu, May 26, 2022 at 12:10:55AM +0200, Frederic Weisbecker wrote:
> > Introduce a new "isolation.rcu_nocb" file within a cgroup2/cpuset
> > directory which provides support for a set of CPUs to either enable ("1")
> > or disable ("0") RCU callbacks offloading (aka. RCU NOCB). This can
> > overwrite previous boot settings towards "rcu_nocbs=" kernel parameter.
> >
> > The file is only writeable on "root" type partitions to exclude any
> > overlap. The deepest root type partition has the highest priority.
> > This means that given the following setting:
> >
> > Top cpuset (CPUs: 0-7)
> > cpuset.isolation.rcu_nocb = 0
> > |
> > |
> > Subdirectory A (CPUs: 5-7)
> > cpuset.cpus.partition = root
> > cpuset.isolation.rcu_nocb = 0
> > |
> > |
> > Subdirectory B (CPUs: 7)
> > cpuset.cpus.partition = root
> > cpuset.isolation.rcu_nocb = 1
> >
> > the result is that only CPU 7 is in rcu_nocb mode.
> >
> > Note that "rcu_nocbs" kernel parameter must be passed on boot, even
> > without a cpulist, so that nocb support is enabled.
>
> Does it even make sense to make this hierarchical? What's wrong with a
> cpumask under sys/ or proc/?

I'm usually told that cpusets is the current place where CPU attributes are
supposed to go. I personally don't mind much /sys either even though cpusets
looks like a more flexible way to partition CPUs with properties and tasks
placement altogether...