diff mbox series

[J/realtime] UBUNTU: [Config] realtime: enable CONFIG_NO_HZ_FULL

Message ID 20211217113248.56947-1-krzysztof.kozlowski@canonical.com
State New
Headers show
Series [J/realtime] UBUNTU: [Config] realtime: enable CONFIG_NO_HZ_FULL | expand

Commit Message

Krzysztof Kozlowski Dec. 17, 2021, 11:32 a.m. UTC
The NO_HZ_FULL (selecting also RCU_NOCB_CPU, CONTEXT_TRACKING and
VIRT_CPU_ACCOUNTING) is an option dedicated to realtime or high
performance computing workloads.  It allows to omit scheduling-clock
ticks on CPUs that are either idle or that have only one runnable task.

It is expected that a realtime workload will isolate CPUs for its
realtime tasks (realtime application will run on dedicated CPUs), thus
it matches the NO_HZ_FULL type of workload and should benefit from this
setting.

This setting still requires runtime configuration - choosing CPUs to be
nohz idle (see: Documentation/timers/no_hz.rst).

The setting was also requested by Intel FlexRAN engineers as it greatly
improves their workload.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 debian.realtime/config/config.common.ubuntu | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

Comments

Tim Gardner Dec. 17, 2021, 12:44 p.m. UTC | #1
Acked-by: Tim Gardner <tim.gardner@canonical.com>

Do you really need to send patches on the list for development kernels ?

On 12/17/21 4:32 AM, Krzysztof Kozlowski wrote:
> The NO_HZ_FULL (selecting also RCU_NOCB_CPU, CONTEXT_TRACKING and
> VIRT_CPU_ACCOUNTING) is an option dedicated to realtime or high
> performance computing workloads.  It allows to omit scheduling-clock
> ticks on CPUs that are either idle or that have only one runnable task.
> 
> It is expected that a realtime workload will isolate CPUs for its
> realtime tasks (realtime application will run on dedicated CPUs), thus
> it matches the NO_HZ_FULL type of workload and should benefit from this
> setting.
> 
> This setting still requires runtime configuration - choosing CPUs to be
> nohz idle (see: Documentation/timers/no_hz.rst).
> 
> The setting was also requested by Intel FlexRAN engineers as it greatly
> improves their workload.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> ---
>   debian.realtime/config/config.common.ubuntu | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/debian.realtime/config/config.common.ubuntu b/debian.realtime/config/config.common.ubuntu
> index 7d1034ccfb26..f494c4d8f058 100644
> --- a/debian.realtime/config/config.common.ubuntu
> +++ b/debian.realtime/config/config.common.ubuntu
> @@ -1848,6 +1848,8 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=4
>   CONFIG_CONSOLE_POLL=y
>   CONFIG_CONSOLE_TRANSLATIONS=y
>   CONFIG_CONTEXT_SWITCH_TRACER=y
> +CONFIG_CONTEXT_TRACKING=y
> +# CONFIG_CONTEXT_TRACKING_FORCE is not set
>   CONFIG_CONTIG_ALLOC=y
>   CONFIG_CORDIC=m
>   CONFIG_COREDUMP=y
> @@ -6894,8 +6896,8 @@ CONFIG_NOUVEAU_PLATFORM_DRIVER=y
>   CONFIG_NOZOMI=m
>   CONFIG_NO_HZ=y
>   CONFIG_NO_HZ_COMMON=y
> -# CONFIG_NO_HZ_FULL is not set
> -CONFIG_NO_HZ_IDLE=y
> +CONFIG_NO_HZ_FULL=y
> +# CONFIG_NO_HZ_IDLE is not set
>   CONFIG_NR_CPUS_DEFAULT=8192
>   CONFIG_NR_CPUS_RANGE_BEGIN=8192
>   CONFIG_NR_CPUS_RANGE_END=8192
> @@ -7977,6 +7979,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
>   # CONFIG_RCU_EQS_DEBUG is not set
>   # CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
> +CONFIG_RCU_NOCB_CPU=y
>   # CONFIG_RCU_REF_SCALE_TEST is not set
>   # CONFIG_RCU_SCALE_TEST is not set
>   CONFIG_RCU_STALL_COMMON=y
> @@ -10451,7 +10454,6 @@ CONFIG_THUNDER_NIC_BGX=m
>   CONFIG_THUNDER_NIC_PF=m
>   CONFIG_THUNDER_NIC_RGX=m
>   CONFIG_THUNDER_NIC_VF=m
> -CONFIG_TICK_CPU_ACCOUNTING=y
>   CONFIG_TICK_ONESHOT=y
>   CONFIG_TIFM_7XX1=m
>   CONFIG_TIFM_CORE=m
> @@ -11633,7 +11635,8 @@ CONFIG_VIRTIO_VDPA=m
>   CONFIG_VIRTIO_VSOCKETS=m
>   CONFIG_VIRTIO_VSOCKETS_COMMON=m
>   CONFIG_VIRTUALIZATION=y
> -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
> +CONFIG_VIRT_CPU_ACCOUNTING=y
> +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
>   CONFIG_VIRT_DRIVERS=y
>   CONFIG_VIRT_TO_BUS=y
>   CONFIG_VIRT_WIFI=m
>
Krzysztof Kozlowski Dec. 17, 2021, 1:59 p.m. UTC | #2
On 17/12/2021 13:44, Tim Gardner wrote:
> Acked-by: Tim Gardner <tim.gardner@canonical.com>
> 
> Do you really need to send patches on the list for development kernels ?

No and before I was not sending. However the kernel is quite ready now,
so the changes could be done in more public/sharing way.

> 
> On 12/17/21 4:32 AM, Krzysztof Kozlowski wrote:
>> The NO_HZ_FULL (selecting also RCU_NOCB_CPU, CONTEXT_TRACKING and
>> VIRT_CPU_ACCOUNTING) is an option dedicated to realtime or high
>> performance computing workloads.  It allows to omit scheduling-clock
>> ticks on CPUs that are either idle or that have only one runnable task.
>>
>> It is expected that a realtime workload will isolate CPUs for its
>> realtime tasks (realtime application will run on dedicated CPUs), thus
>> it matches the NO_HZ_FULL type of workload and should benefit from this
>> setting.
>>
>> This setting still requires runtime configuration - choosing CPUs to be
>> nohz idle (see: Documentation/timers/no_hz.rst).
>>
>> The setting was also requested by Intel FlexRAN engineers as it greatly
>> improves their workload.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
>> ---
>>   debian.realtime/config/config.common.ubuntu | 11 +++++++----
>>   1 file changed, 7 insertions(+), 4 deletions(-)
>>


Best regards,
Krzysztof
Krzysztof Kozlowski Dec. 17, 2021, 2:24 p.m. UTC | #3
On 17/12/2021 12:32, Krzysztof Kozlowski wrote:
> The NO_HZ_FULL (selecting also RCU_NOCB_CPU, CONTEXT_TRACKING and
> VIRT_CPU_ACCOUNTING) is an option dedicated to realtime or high
> performance computing workloads.  It allows to omit scheduling-clock
> ticks on CPUs that are either idle or that have only one runnable task.
> 
> It is expected that a realtime workload will isolate CPUs for its
> realtime tasks (realtime application will run on dedicated CPUs), thus
> it matches the NO_HZ_FULL type of workload and should benefit from this
> setting.
> 
> This setting still requires runtime configuration - choosing CPUs to be
> nohz idle (see: Documentation/timers/no_hz.rst).
> 
> The setting was also requested by Intel FlexRAN engineers as it greatly
> improves their workload.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> ---
>  debian.realtime/config/config.common.ubuntu | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 

Applied with annotations change.


Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/debian.realtime/config/config.common.ubuntu b/debian.realtime/config/config.common.ubuntu
index 7d1034ccfb26..f494c4d8f058 100644
--- a/debian.realtime/config/config.common.ubuntu
+++ b/debian.realtime/config/config.common.ubuntu
@@ -1848,6 +1848,8 @@  CONFIG_CONSOLE_LOGLEVEL_QUIET=4
 CONFIG_CONSOLE_POLL=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_CONTEXT_TRACKING=y
+# CONFIG_CONTEXT_TRACKING_FORCE is not set
 CONFIG_CONTIG_ALLOC=y
 CONFIG_CORDIC=m
 CONFIG_COREDUMP=y
@@ -6894,8 +6896,8 @@  CONFIG_NOUVEAU_PLATFORM_DRIVER=y
 CONFIG_NOZOMI=m
 CONFIG_NO_HZ=y
 CONFIG_NO_HZ_COMMON=y
-# CONFIG_NO_HZ_FULL is not set
-CONFIG_NO_HZ_IDLE=y
+CONFIG_NO_HZ_FULL=y
+# CONFIG_NO_HZ_IDLE is not set
 CONFIG_NR_CPUS_DEFAULT=8192
 CONFIG_NR_CPUS_RANGE_BEGIN=8192
 CONFIG_NR_CPUS_RANGE_END=8192
@@ -7977,6 +7979,7 @@  CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_RCU_EQS_DEBUG is not set
 # CONFIG_RCU_EXPERT is not set
 CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_NOCB_CPU=y
 # CONFIG_RCU_REF_SCALE_TEST is not set
 # CONFIG_RCU_SCALE_TEST is not set
 CONFIG_RCU_STALL_COMMON=y
@@ -10451,7 +10454,6 @@  CONFIG_THUNDER_NIC_BGX=m
 CONFIG_THUNDER_NIC_PF=m
 CONFIG_THUNDER_NIC_RGX=m
 CONFIG_THUNDER_NIC_VF=m
-CONFIG_TICK_CPU_ACCOUNTING=y
 CONFIG_TICK_ONESHOT=y
 CONFIG_TIFM_7XX1=m
 CONFIG_TIFM_CORE=m
@@ -11633,7 +11635,8 @@  CONFIG_VIRTIO_VDPA=m
 CONFIG_VIRTIO_VSOCKETS=m
 CONFIG_VIRTIO_VSOCKETS_COMMON=m
 CONFIG_VIRTUALIZATION=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRT_TO_BUS=y
 CONFIG_VIRT_WIFI=m