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 |
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 >
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
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 --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
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(-)