From a8add90619a82b12c76005b605adabc5e2ec0fd5 Mon Sep 17 00:00:00 2001 From: Krzysztof Kozlowski Date: Thu, 15 Dec 2022 16:34:40 +0100 Subject: arm64: defconfig: Customize for Realtime kernel Requires EXPERT. Enable Realtime specific options: - HZ_1000 - PREEMPT_RT - RCU_BOOST - PREEMPT_LAZY - NO_HZ_FULL - should select also RCU_NOCB_CPU, CONTEXT_TRACKING and VIRT_CPU_ACCOUNTING is dedicated for single-task workloads, like realtime. It allows to omit scheduling-clock ticks on CPUs that are either idle or that have only one runnable task. This setting still requires runtime configuration - choosing CPUs to be nohz idle (see: Documentation/timers/no_hz.rst). - RCU_NOCB_CPU - LATENCYTOP - for debugging latency - TIMERS - for debugging latency - TIMERLAT_TRACER - for debugging latency - OSNOISE_TRACER - for debugging latency - IRQ_TIME_ACCOUNTING - for fine granularity task IRQ accounting Disable: - WQ_POWER_EFFICIENT_DEFAULT - locality of workqueues (thus cache locality and maybe lower latencies) is more important than energy saving; Signed-off-by: Krzysztof Kozlowski --- arch/arm64/configs/defconfig | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 09e8d487d8e6..364a301db8fd 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1,11 +1,11 @@ CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_AUDIT=y -CONFIG_NO_HZ_IDLE=y +CONFIG_NO_HZ_FULL=y CONFIG_HIGH_RES_TIMERS=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT=y -CONFIG_PREEMPT=y +CONFIG_PREEMPT_RT=y CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y @@ -25,10 +25,12 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y +CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_SCHED_AUTOGROUP=y CONFIG_BLK_DEV_INITRD=y CONFIG_KALLSYMS_ALL=y +CONFIG_EXPERT=y CONFIG_PROFILING=y CONFIG_ARCH_ACTIONS=y CONFIG_ARCH_SUNXI=y @@ -73,6 +75,7 @@ CONFIG_ARM64_VA_BITS_48=y CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y CONFIG_NUMA=y +CONFIG_HZ_1000=y CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y CONFIG_CRASH_DUMP=y @@ -80,8 +83,8 @@ CONFIG_XEN=y CONFIG_COMPAT=y CONFIG_RANDOMIZE_BASE=y CONFIG_HIBERNATION=y -CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y CONFIG_ENERGY_MODEL=y +CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_ARM_PSCI_CPUIDLE=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=y @@ -116,6 +119,7 @@ CONFIG_JUMP_LABEL=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_IOSCHED_BFQ=y +CONFIG_BLK_CGROUP_IOLATENCY=y CONFIG_BLK_INLINE_ENCRYPTION=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set # CONFIG_COMPAT_BRK is not set @@ -1481,7 +1485,8 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set -# CONFIG_FTRACE is not set +CONFIG_LATENCYTOP=y +CONFIG_TIMERLAT_TRACER=y CONFIG_CORESIGHT=m CONFIG_CORESIGHT_LINK_AND_SINK_TMC=m CONFIG_CORESIGHT_CATU=m -- cgit v1.2.3