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 |