summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBreno Leitao <leitao@debian.org>2026-02-03 09:01:17 -0800
committerTejun Heo <tj@kernel.org>2026-02-03 09:37:59 -1000
commit32d572e39031920691abfada68cdb19ad44b4eeb (patch)
treed9b89f9aa3de0d8659c59b35de9f2406fba3e36d /lib
parent51cd2d2decf365a248ddc304b7aa6f0cadc748c3 (diff)
workqueue: add CONFIG_BOOTPARAM_WQ_STALL_PANIC option
Add a kernel config option to set the default value of workqueue.panic_on_stall, similar to CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, CONFIG_BOOTPARAM_HARDLOCKUP_PANIC and CONFIG_BOOTPARAM_HUNG_TASK_PANIC. This allows setting the number of workqueue stalls before triggering a kernel panic at build time, which is useful for high-availability systems that need consistent panic-on-stall, in other words, those servers which run with CONFIG_BOOTPARAM_*_PANIC=y already. The default remains 0 (disabled). Setting it to 1 will panic on the first stall, and higher values will panic after that many stall warnings. The value can still be overridden at runtime via the workqueue.panic_on_stall boot parameter or sysfs. Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/Kconfig.debug23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index ba36939fda79..ce25a8faf6e9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1297,6 +1297,29 @@ config WQ_WATCHDOG
state. This can be configured through kernel parameter
"workqueue.watchdog_thresh" and its sysfs counterpart.
+config BOOTPARAM_WQ_STALL_PANIC
+ int "Panic on Nth workqueue stall"
+ default 0
+ range 0 100
+ depends on WQ_WATCHDOG
+ help
+ Set the number of workqueue stalls to trigger a kernel panic.
+ A workqueue stall occurs when a worker pool doesn't make forward
+ progress on a pending work item for over 30 seconds (configurable
+ using the workqueue.watchdog_thresh parameter).
+
+ If n = 0, the kernel will not panic on stall. If n > 0, the kernel
+ will panic after n stall warnings.
+
+ The panic can be used in combination with panic_timeout,
+ to cause the system to reboot automatically after a
+ stall has been detected. This feature is useful for
+ high-availability systems that have uptime guarantees and
+ where a stall must be resolved ASAP.
+
+ This setting can be overridden at runtime via the
+ workqueue.panic_on_stall kernel parameter.
+
config WQ_CPU_INTENSIVE_REPORT
bool "Report per-cpu work items which hog CPU for too long"
depends on DEBUG_KERNEL