diff options
author | Mandeep Singh Baines <msb@google.com> | 2009-01-15 14:08:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-16 08:06:04 -0500 |
commit | e162b39a368f0401e41b558f430c354d12a85b37 (patch) | |
tree | 3fb7e4d48f398d62e5074e7e3dd183cc54f59820 /lib | |
parent | c903ff837909ccada51243307d4239f86af40179 (diff) |
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>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig.debug | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 4c9ae6085c75..883ecea22f37 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -186,6 +186,44 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE | |||
186 | default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC | 186 | default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC |
187 | default 1 if BOOTPARAM_SOFTLOCKUP_PANIC | 187 | default 1 if BOOTPARAM_SOFTLOCKUP_PANIC |
188 | 188 | ||
189 | config DETECT_HUNG_TASK | ||
190 | bool "Detect Hung Tasks" | ||
191 | depends on DEBUG_KERNEL | ||
192 | default y | ||
193 | help | ||
194 | Say Y here to enable the kernel to detect "hung tasks", | ||
195 | which are bugs that cause the task to be stuck in | ||
196 | uninterruptible "D" state indefinitiley. | ||
197 | |||
198 | When a hung task is detected, the kernel will print the | ||
199 | current stack trace (which you should report), but the | ||
200 | task will stay in uninterruptible state. If lockdep is | ||
201 | enabled then all held locks will also be reported. This | ||
202 | feature has negligible overhead. | ||
203 | |||
204 | config BOOTPARAM_HUNG_TASK_PANIC | ||
205 | bool "Panic (Reboot) On Hung Tasks" | ||
206 | depends on DETECT_HUNG_TASK | ||
207 | help | ||
208 | Say Y here to enable the kernel to panic on "hung tasks", | ||
209 | which are bugs that cause the kernel to leave a task stuck | ||
210 | in uninterruptible "D" state. | ||
211 | |||
212 | The panic can be used in combination with panic_timeout, | ||
213 | to cause the system to reboot automatically after a | ||
214 | hung task has been detected. This feature is useful for | ||
215 | high-availability systems that have uptime guarantees and | ||
216 | where a hung tasks must be resolved ASAP. | ||
217 | |||
218 | Say N if unsure. | ||
219 | |||
220 | config BOOTPARAM_HUNG_TASK_PANIC_VALUE | ||
221 | int | ||
222 | depends on DETECT_HUNG_TASK | ||
223 | range 0 1 | ||
224 | default 0 if !BOOTPARAM_HUNG_TASK_PANIC | ||
225 | default 1 if BOOTPARAM_HUNG_TASK_PANIC | ||
226 | |||
189 | config SCHED_DEBUG | 227 | config SCHED_DEBUG |
190 | bool "Collect scheduler debugging info" | 228 | bool "Collect scheduler debugging info" |
191 | depends on DEBUG_KERNEL && PROC_FS | 229 | depends on DEBUG_KERNEL && PROC_FS |