softlockup: decouple hung tasks check from softlockup detection
Decoupling allows: * hung tasks check to happen at very low priority * hung tasks check and softlockup to be enabled/disabled independently at compile and/or run-time * individual panic settings to be enabled disabled independently at compile and/or run-time * softlockup threshold to be reduced without increasing hung tasks poll frequency (hung task check is expensive relative to softlock watchdog) * hung task check to be zero over-head when disabled at run-time Signed-off-by: Mandeep Singh Baines <msb@google.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
c903ff8379
commit
e162b39a36
@ -186,6 +186,44 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
|
||||
default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
|
||||
default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
|
||||
|
||||
config DETECT_HUNG_TASK
|
||||
bool "Detect Hung Tasks"
|
||||
depends on DEBUG_KERNEL
|
||||
default y
|
||||
help
|
||||
Say Y here to enable the kernel to detect "hung tasks",
|
||||
which are bugs that cause the task to be stuck in
|
||||
uninterruptible "D" state indefinitiley.
|
||||
|
||||
When a hung task is detected, the kernel will print the
|
||||
current stack trace (which you should report), but the
|
||||
task will stay in uninterruptible state. If lockdep is
|
||||
enabled then all held locks will also be reported. This
|
||||
feature has negligible overhead.
|
||||
|
||||
config BOOTPARAM_HUNG_TASK_PANIC
|
||||
bool "Panic (Reboot) On Hung Tasks"
|
||||
depends on DETECT_HUNG_TASK
|
||||
help
|
||||
Say Y here to enable the kernel to panic on "hung tasks",
|
||||
which are bugs that cause the kernel to leave a task stuck
|
||||
in uninterruptible "D" state.
|
||||
|
||||
The panic can be used in combination with panic_timeout,
|
||||
to cause the system to reboot automatically after a
|
||||
hung task has been detected. This feature is useful for
|
||||
high-availability systems that have uptime guarantees and
|
||||
where a hung tasks must be resolved ASAP.
|
||||
|
||||
Say N if unsure.
|
||||
|
||||
config BOOTPARAM_HUNG_TASK_PANIC_VALUE
|
||||
int
|
||||
depends on DETECT_HUNG_TASK
|
||||
range 0 1
|
||||
default 0 if !BOOTPARAM_HUNG_TASK_PANIC
|
||||
default 1 if BOOTPARAM_HUNG_TASK_PANIC
|
||||
|
||||
config SCHED_DEBUG
|
||||
bool "Collect scheduler debugging info"
|
||||
depends on DEBUG_KERNEL && PROC_FS
|
||||
|
Reference in New Issue
Block a user