]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rcu: Add rcuog kthreads to RCU_NOCB_CPU help text
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 9 Oct 2024 18:00:39 +0000 (11:00 -0700)
committerFrederic Weisbecker <frederic@kernel.org>
Tue, 12 Nov 2024 20:41:08 +0000 (21:41 +0100)
The RCU_NOCB_CPU help text currently fails to mention rcuog kthreads,
so this commit adds this information.

Reported-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
kernel/rcu/Kconfig

index 3e079de0f5b434bd394033f08a38a00228c07432..b9b6bc55185dba365236b4f01d8aaa3596f70ecd 100644 (file)
@@ -249,16 +249,24 @@ config RCU_NOCB_CPU
          workloads will incur significant increases in context-switch
          rates.
 
-         This option offloads callback invocation from the set of CPUs
-         specified at boot time by the rcu_nocbs parameter.  For each
-         such CPU, a kthread ("rcuox/N") will be created to invoke
-         callbacks, where the "N" is the CPU being offloaded, and where
-         the "x" is "p" for RCU-preempt (PREEMPTION kernels) and "s" for
-         RCU-sched (!PREEMPTION kernels).  Nothing prevents this kthread
-         from running on the specified CPUs, but (1) the kthreads may be
-         preempted between each callback, and (2) affinity or cgroups can
-         be used to force the kthreads to run on whatever set of CPUs is
-         desired.
+         This option offloads callback invocation from the set of
+         CPUs specified at boot time by the rcu_nocbs parameter.
+         For each such CPU, a kthread ("rcuox/N") will be created to
+         invoke callbacks, where the "N" is the CPU being offloaded,
+         and where the "x" is "p" for RCU-preempt (PREEMPTION kernels)
+         and "s" for RCU-sched (!PREEMPTION kernels).  This option
+         also creates another kthread for each sqrt(nr_cpu_ids) CPUs
+         ("rcuog/N", where N is the first CPU in that group to come
+         online), which handles grace periods for its group.  Nothing
+         prevents these kthreads from running on the specified CPUs,
+         but (1) the kthreads may be preempted between each callback,
+         and (2) affinity or cgroups can be used to force the kthreads
+         to run on whatever set of CPUs is desired.
+
+         The sqrt(nr_cpu_ids) grouping may be overridden using the
+         rcutree.rcu_nocb_gp_stride kernel boot parameter.  This can
+         be especially helpful for smaller numbers of CPUs, where
+         sqrt(nr_cpu_ids) can be a bit of a blunt instrument.
 
          Say Y here if you need reduced OS jitter, despite added overhead.
          Say N here if you are unsure.