Add a Kconfig option to set the default value of the kernel.panic_on_rcu_stall sysctl, allowing the kernel to be built with panic-on-RCU-stall enabled by default.
This is useful for high-availability systems that require automatic recovery (via panic_timeout) when a CPU stall is detected, without needing userspace to configure the sysctl at boot. This follows the pattern established by BOOTPARAM_SOFTLOCKUP_PANIC and BOOTPARAM_HUNG_TASK_PANIC. The runtime sysctl can still override the Kconfig default. Signed-off-by: Gustavo Luiz Duarte <[email protected]> --- kernel/rcu/Kconfig.debug | 24 ++++++++++++++++++++++++ kernel/rcu/tree_stall.h | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/Kconfig.debug b/kernel/rcu/Kconfig.debug index 625d75392647..fc2c775eeefc 100644 --- a/kernel/rcu/Kconfig.debug +++ b/kernel/rcu/Kconfig.debug @@ -175,6 +175,30 @@ config RCU_CPU_STALL_NOTIFIER Say Y here if you want RCU CPU stall notifiers (you don't want them) Say N if you are unsure. +config BOOTPARAM_RCU_STALL_PANIC + bool "Panic (reboot) on RCU CPU stall" + depends on RCU_STALL_COMMON + default n + help + Say Y here to enable the kernel to panic when an RCU CPU stall + is detected. + + The panic can be used in combination with panic_timeout, + to cause the system to reboot automatically after an + RCU CPU stall has been detected. This feature is useful for + high-availability systems that have uptime guarantees and + where a CPU stall must be resolved ASAP. + + The kernel.max_rcu_stall_to_panic sysctl can be used to set + a minimum number of stalls before panicking, allowing the + system to tolerate a given number of RCU CPU stalls before + triggering a panic. + + This setting can be overridden at runtime via the + kernel.panic_on_rcu_stall sysctl parameter. + + Say N if unsure. + config RCU_TRACE bool "Enable tracing for RCU" depends on DEBUG_KERNEL diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index b67532cb8770..43ddabf46b5e 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -17,7 +17,7 @@ // Controlling CPU stall warnings, including delay calculation. /* panic() on RCU Stall sysctl. */ -static int sysctl_panic_on_rcu_stall __read_mostly; +static int sysctl_panic_on_rcu_stall __read_mostly = IS_ENABLED(CONFIG_BOOTPARAM_RCU_STALL_PANIC); static int sysctl_max_rcu_stall_to_panic __read_mostly; static const struct ctl_table rcu_stall_sysctl_table[] = { --- base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681 change-id: 20260313-panic_on_rcustall-95709d1abf2f Best regards, -- Gustavo Luiz Duarte <[email protected]>

