[PATCH 0/4] rcu/cpuset: Control RCU_NOCB offloading through cpusets

From: Frederic Weisbecker
Date: Wed May 25 2022 - 18:11:09 EST


The infrastructure in RCU and housekeeping code are finally ready
for this. Now it's time to introduce CPU isolation feature files
to cpusets. Here is the first one.

RCU NOCB is an RCU feature that offloads RCU callbacks lifecycle
handling and execution out of the enqueuer's CPU softirq to specific
kthreads instead (rcuo and rcuog). This pulls some kernel noise out of
CPUs that may run critical code. This is usually associated with
nohz_full.

The CPUs list to be set in RCU NOCB mode is defined on boot time
through the "rcu_nocbs=" kernel parameter and can't be changed afterward.
This patchset aims at allowing for changing this on runtime through cpuset.

I may have missed a few things in the last patch, such as partition type
changes to/from error mode, I'm not sure... Anyway it's an RFC and it
doesn't yet provide documentation in this early posting.

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
cpuset/nocb

HEAD: ad895c0b6a5e3c41d46f184900d193e70bfc90d3

Thanks,
Frederic
---

Frederic Weisbecker (4):
rcu/nocb: Pass a cpumask instead of a single CPU to offload/deoffload
rcu/nocb: Prepare to change nocb cpumask from CPU-hotplug protected cpuset caller
sched/isolation: Infrastructure to support rcu nocb cpumask changes
cpuset: Support RCU-NOCB toggle on v2 root partitions


include/linux/rcupdate.h | 9 ++--
include/linux/sched/isolation.h | 13 +++++
kernel/cgroup/cpuset.c | 95 +++++++++++++++++++++++++++++++++--
kernel/rcu/rcutorture.c | 6 ++-
kernel/rcu/tree_nocb.h | 106 +++++++++++++++++++++++++++-------------
kernel/sched/isolation.c | 38 ++++++++++++++
6 files changed, 223 insertions(+), 44 deletions(-)