2020-09-24 06:38:35

by Neeraj Upadhyay

[permalink] [raw]
Subject: [PATCH] rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config

Clarify the "x" in rcuox/N naming in RCU_NOCB_CPU config
description.

Signed-off-by: Neeraj Upadhyay <[email protected]>
---
kernel/rcu/Kconfig | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
index b71e21f..5b22747 100644
--- a/kernel/rcu/Kconfig
+++ b/kernel/rcu/Kconfig
@@ -227,11 +227,12 @@ config RCU_NOCB_CPU
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 "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.
+ 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.

Say Y here if you want to help to debug reduced OS jitter.
Say N here if you are unsure.
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2020-09-24 23:03:50

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config

On Thu, Sep 24, 2020 at 12:04:10PM +0530, Neeraj Upadhyay wrote:
> Clarify the "x" in rcuox/N naming in RCU_NOCB_CPU config
> description.
>
> Signed-off-by: Neeraj Upadhyay <[email protected]>

Applied with a few additional updates as shown below. As always, please
let me know if I messed anything up.

Thanx, Paul

------------------------------------------------------------------------

commit 8d1d776b4998896a6f8f4608edb0b258bd37ec9f
Author: Neeraj Upadhyay <[email protected]>
Date: Thu Sep 24 12:04:10 2020 +0530

rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config

This commit clarifies that the "p" and the "s" in the in the RCU_NOCB_CPU
config-option description refer to the "x" in the "rcuox/N" kthread name.

Signed-off-by: Neeraj Upadhyay <[email protected]>
[ paulmck: While in the area, update description and advice. ]
Signed-off-by: Paul E. McKenney <[email protected]>

diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
index b71e21f..cdc57b4 100644
--- a/kernel/rcu/Kconfig
+++ b/kernel/rcu/Kconfig
@@ -221,19 +221,23 @@ config RCU_NOCB_CPU
Use this option to reduce OS jitter for aggressive HPC or
real-time workloads. It can also be used to offload RCU
callback invocation to energy-efficient CPUs in battery-powered
- asymmetric multiprocessors.
+ asymmetric multiprocessors. The price of this reduced jitter
+ is that the overhead of call_rcu() increases and that some
+ 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 "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.
-
- Say Y here if you want to help to debug reduced OS jitter.
+ 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.
+
+ Say Y here if you need reduced OS jitter, despite added overhead.
Say N here if you are unsure.

config TASKS_TRACE_RCU_READ_MB

2020-09-25 05:53:41

by Neeraj Upadhyay

[permalink] [raw]
Subject: Re: [PATCH] rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config

Hi Paul,

On 9/25/2020 4:29 AM, Paul E. McKenney wrote:
> On Thu, Sep 24, 2020 at 12:04:10PM +0530, Neeraj Upadhyay wrote:
>> Clarify the "x" in rcuox/N naming in RCU_NOCB_CPU config
>> description.
>>
>> Signed-off-by: Neeraj Upadhyay <[email protected]>
>
> Applied with a few additional updates as shown below. As always, please
> let me know if I messed anything up.
>

Looks good! thanks!


Thanks
Neeraj

> Thanx, Paul
>
> ------------------------------------------------------------------------
>
> commit 8d1d776b4998896a6f8f4608edb0b258bd37ec9f
> Author: Neeraj Upadhyay <[email protected]>
> Date: Thu Sep 24 12:04:10 2020 +0530
>
> rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config
>
> This commit clarifies that the "p" and the "s" in the in the RCU_NOCB_CPU
> config-option description refer to the "x" in the "rcuox/N" kthread name.
>
> Signed-off-by: Neeraj Upadhyay <[email protected]>
> [ paulmck: While in the area, update description and advice. ]
> Signed-off-by: Paul E. McKenney <[email protected]>
>
> diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
> index b71e21f..cdc57b4 100644
> --- a/kernel/rcu/Kconfig
> +++ b/kernel/rcu/Kconfig
> @@ -221,19 +221,23 @@ config RCU_NOCB_CPU
> Use this option to reduce OS jitter for aggressive HPC or
> real-time workloads. It can also be used to offload RCU
> callback invocation to energy-efficient CPUs in battery-powered
> - asymmetric multiprocessors.
> + asymmetric multiprocessors. The price of this reduced jitter
> + is that the overhead of call_rcu() increases and that some
> + 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 "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.
> -
> - Say Y here if you want to help to debug reduced OS jitter.
> + 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.
> +
> + Say Y here if you need reduced OS jitter, despite added overhead.
> Say N here if you are unsure.
>
> config TASKS_TRACE_RCU_READ_MB
>

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of the Code Aurora Forum, hosted by The Linux Foundation

2020-09-28 00:17:05

by Joel Fernandes

[permalink] [raw]
Subject: Re: [PATCH] rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config

On Thu, Sep 24, 2020 at 12:04:10PM +0530, Neeraj Upadhyay wrote:
> Clarify the "x" in rcuox/N naming in RCU_NOCB_CPU config
> description.
>

Reviewed-by: Joel Fernandes (Google) <[email protected]>

thanks,

- Joel

> Signed-off-by: Neeraj Upadhyay <[email protected]>
> ---
> kernel/rcu/Kconfig | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
> index b71e21f..5b22747 100644
> --- a/kernel/rcu/Kconfig
> +++ b/kernel/rcu/Kconfig
> @@ -227,11 +227,12 @@ config RCU_NOCB_CPU
> 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 "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.
> + 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.
>
> Say Y here if you want to help to debug reduced OS jitter.
> Say N here if you are unsure.
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>

2020-09-28 03:42:57

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config

On Sun, Sep 27, 2020 at 08:13:42PM -0400, Joel Fernandes wrote:
> On Thu, Sep 24, 2020 at 12:04:10PM +0530, Neeraj Upadhyay wrote:
> > Clarify the "x" in rcuox/N naming in RCU_NOCB_CPU config
> > description.
> >
>
> Reviewed-by: Joel Fernandes (Google) <[email protected]>

Thank you, I will apply your Reviewed-by on the next rebase.

Thanx, Paul

> thanks,
>
> - Joel
>
> > Signed-off-by: Neeraj Upadhyay <[email protected]>
> > ---
> > kernel/rcu/Kconfig | 11 ++++++-----
> > 1 file changed, 6 insertions(+), 5 deletions(-)
> >
> > diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
> > index b71e21f..5b22747 100644
> > --- a/kernel/rcu/Kconfig
> > +++ b/kernel/rcu/Kconfig
> > @@ -227,11 +227,12 @@ config RCU_NOCB_CPU
> > 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 "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.
> > + 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.
> >
> > Say Y here if you want to help to debug reduced OS jitter.
> > Say N here if you are unsure.
> > --
> > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> > a Linux Foundation Collaborative Project
> >