diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Kconfig.debug | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index e80d6bf1c43d..ff87ddc4cbd5 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
| @@ -152,28 +152,33 @@ config DEBUG_SHIRQ | |||
| 152 | Drivers ought to be able to handle interrupts coming in at those | 152 | Drivers ought to be able to handle interrupts coming in at those |
| 153 | points; some don't and need to be caught. | 153 | points; some don't and need to be caught. |
| 154 | 154 | ||
| 155 | config DETECT_SOFTLOCKUP | 155 | config LOCKUP_DETECTOR |
| 156 | bool "Detect Soft Lockups" | 156 | bool "Detect Hard and Soft Lockups" |
| 157 | depends on DEBUG_KERNEL && !S390 | 157 | depends on DEBUG_KERNEL && !S390 |
| 158 | default y | ||
| 159 | help | 158 | help |
| 160 | Say Y here to enable the kernel to detect "soft lockups", | 159 | Say Y here to enable the kernel to act as a watchdog to detect |
| 161 | which are bugs that cause the kernel to loop in kernel | 160 | hard and soft lockups. |
| 161 | |||
| 162 | Softlockups are bugs that cause the kernel to loop in kernel | ||
| 162 | mode for more than 60 seconds, without giving other tasks a | 163 | mode for more than 60 seconds, without giving other tasks a |
| 163 | chance to run. | 164 | chance to run. The current stack trace is displayed upon |
| 165 | detection and the system will stay locked up. | ||
| 164 | 166 | ||
| 165 | When a soft-lockup is detected, the kernel will print the | 167 | Hardlockups are bugs that cause the CPU to loop in kernel mode |
| 166 | current stack trace (which you should report), but the | 168 | for more than 60 seconds, without letting other interrupts have a |
| 167 | system will stay locked up. This feature has negligible | 169 | chance to run. The current stack trace is displayed upon detection |
| 168 | overhead. | 170 | and the system will stay locked up. |
| 171 | |||
| 172 | The overhead should be minimal. A periodic hrtimer runs to | ||
| 173 | generate interrupts and kick the watchdog task every 10-12 seconds. | ||
| 174 | An NMI is generated every 60 seconds or so to check for hardlockups. | ||
| 169 | 175 | ||
| 170 | (Note that "hard lockups" are separate type of bugs that | 176 | config HARDLOCKUP_DETECTOR |
| 171 | can be detected via the NMI-watchdog, on platforms that | 177 | def_bool LOCKUP_DETECTOR && PERF_EVENTS && HAVE_PERF_EVENTS_NMI |
| 172 | support it.) | ||
| 173 | 178 | ||
| 174 | config BOOTPARAM_SOFTLOCKUP_PANIC | 179 | config BOOTPARAM_SOFTLOCKUP_PANIC |
| 175 | bool "Panic (Reboot) On Soft Lockups" | 180 | bool "Panic (Reboot) On Soft Lockups" |
| 176 | depends on DETECT_SOFTLOCKUP | 181 | depends on LOCKUP_DETECTOR |
| 177 | help | 182 | help |
| 178 | Say Y here to enable the kernel to panic on "soft lockups", | 183 | Say Y here to enable the kernel to panic on "soft lockups", |
| 179 | which are bugs that cause the kernel to loop in kernel | 184 | which are bugs that cause the kernel to loop in kernel |
| @@ -190,7 +195,7 @@ config BOOTPARAM_SOFTLOCKUP_PANIC | |||
| 190 | 195 | ||
| 191 | config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE | 196 | config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE |
| 192 | int | 197 | int |
| 193 | depends on DETECT_SOFTLOCKUP | 198 | depends on LOCKUP_DETECTOR |
| 194 | range 0 1 | 199 | range 0 1 |
| 195 | default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC | 200 | default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC |
| 196 | default 1 if BOOTPARAM_SOFTLOCKUP_PANIC | 201 | default 1 if BOOTPARAM_SOFTLOCKUP_PANIC |
