doc: Document rcutree.nocb_nobypass_lim_per_jiffy kernel parameter
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 27 Apr 2022 16:24:31 +0000 (09:24 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Tue, 21 Jun 2022 18:57:53 +0000 (11:57 -0700)
This commit provides documentation for the kernel parameter controlling
RCU's handling of callback floods on offloaded (rcu_nocbs) CPUs.
This parameter might be obscure, but it is always there when you need it.

Reported-by: Frederic Weisbecker <frederic@kernel.org>
Reported-by: Uladzislau Rezki <urezki@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <quic_neeraju@quicinc.com>
Documentation/admin-guide/kernel-parameters.txt

index bdf431bdbfdc44db589080fe9b83c3d6e1ca2bc5..40a05df05580185d0dc46540e12c13b62d77fb1a 100644 (file)
                        invoked in the context of an rcuoc kthread, which
                        scheduler will preempt as it does any other task.
 
+       rcutree.nocb_nobypass_lim_per_jiffy= [KNL]
+                       On callback-offloaded (rcu_nocbs) CPUs,
+                       RCU reduces the lock contention that would
+                       otherwise be caused by callback floods through
+                       use of the ->nocb_bypass list.  However, in the
+                       common non-flooded case, RCU queues directly to
+                       the main ->cblist in order to avoid the extra
+                       overhead of the ->nocb_bypass list and its lock.
+                       But if there are too many callbacks queued during
+                       a single jiffy, RCU pre-queues the callbacks into
+                       the ->nocb_bypass queue.  The definition of "too
+                       many" is supplied by this kernel boot parameter.
+
        rcutree.rcu_nocb_gp_stride= [KNL]
                        Set the number of NOCB callback kthreads in
                        each group, which defaults to the square root