From eed39d45c2ff901b5327c7ab63c9131166e3140e Mon Sep 17 00:00:00 2001 From: John Audia Date: Sun, 29 Oct 2023 04:32:21 -0400 Subject: [PATCH] kernel: enable pressure interface PSI provides a canonical way to see resource pressure increases as they develop, with pressure metrics for three major resources: memory, CPU, and IO. PSI stats are like barometers that provide fair warning of impending resource shortages, enabling users to take more proactive, granular, and nuanced steps when resources start becoming scarce. References: * https://www.kernel.org/doc/html/latest/accounting/psi.html * https://lwn.net/Articles/759781/ Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000 Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/13819 Signed-off-by: Hauke Mehrtens --- config/Config-kernel.in | 19 +++++++++++++++++++ target/linux/generic/config-6.6 | 1 + 2 files changed, 20 insertions(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 0fa039db404..91678cf2a66 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -333,6 +333,25 @@ if KERNEL_TASKSTATS endif +config KERNEL_PSI + bool "Compile the kernel with pressure stall information tracking" + help + Collect metrics that indicate how overcommitted the CPU, memory, + and IO capacity are in the system. + + If you say Y here, the kernel will create /proc/pressure/ with the + pressure statistics files cpu, memory, and io. These will indicate + the share of walltime in which some or all tasks in the system are + delayed due to contention of the respective resource. + + In kernels with cgroup support, cgroups (cgroup2 only) will + have cpu.pressure, memory.pressure, and io.pressure files, + which aggregate pressure stalls for the grouped tasks only. + + For more details see Documentation/accounting/psi.rst. + + Say N if unsure. + config KERNEL_KALLSYMS bool "Compile the kernel with symbol table information" default y if !SMALL_FLASH diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6 index 9eec780b53a..105dc0d344f 100644 --- a/target/linux/generic/config-6.6 +++ b/target/linux/generic/config-6.6 @@ -4758,6 +4758,7 @@ CONFIG_PROC_SYSCTL=y # CONFIG_PSB6970_PHY is not set # CONFIG_PSE_CONTROLLER is not set # CONFIG_PSI is not set +# CONFIG_PSI_DEFAULT_DISABLED is not set # CONFIG_PSTORE is not set # CONFIG_PSTORE_BLK is not set # CONFIG_PSTORE_COMPRESS is not set