diff mbox series

[3/3] doc: Document rcutree.nocb_nobypass_lim_per_jiffy kernel parameter

Message ID 20220620221757.3839212-3-paulmck@kernel.org (mailing list archive)
State New, archived
Headers show
Series Documentation updates for v5.20 | expand

Commit Message

Paul E. McKenney June 20, 2022, 10:17 p.m. UTC
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>
---
 Documentation/admin-guide/kernel-parameters.txt | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Neeraj Upadhyay June 21, 2022, 5:11 a.m. UTC | #1
On 6/21/2022 3:47 AM, Paul E. McKenney wrote:
> 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 | 13 +++++++++++++
>   1 file changed, 13 insertions(+)
> 
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index bdf431bdbfdc4..a30890141b1a5 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -4681,6 +4681,19 @@
>   			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 callback floods through

Minor : "caused by" ?


Thanks
Neeraj

> +			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
Paul E. McKenney June 21, 2022, 7:03 p.m. UTC | #2
On Tue, Jun 21, 2022 at 10:41:54AM +0530, Neeraj Upadhyay wrote:
> 
> 
> On 6/21/2022 3:47 AM, Paul E. McKenney wrote:
> > 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 | 13 +++++++++++++
> >   1 file changed, 13 insertions(+)
> > 
> > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> > index bdf431bdbfdc4..a30890141b1a5 100644
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -4681,6 +4681,19 @@
> >   			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 callback floods through
> 
> Minor : "caused by" ?

Good catch, fixed, thank you!

I applied your Reviewed-by to this series as well, and thank you for
that as well.

							Thanx, Paul

> Thanks
> Neeraj
> 
> > +			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
diff mbox series

Patch

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index bdf431bdbfdc4..a30890141b1a5 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -4681,6 +4681,19 @@ 
 			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 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