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

Krzysztof Kozlowski krzysztof.kozlowski at canonical.com
Fri Dec 17 11:32:48 UTC 2021


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 at 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
-- 
2.32.0




More information about the kernel-team mailing list