Messages in this thread Patch in this message | | | Date | Thu, 18 Nov 2004 20:27:11 +0300 | From | Stas Sergeev <> | Subject | Re: 2.6.10-rc1-mm5 |
| |
Hi,
Maciej W. Rozycki wrote: > something CPU-intensive, like: > and observe the NMI counter ticking every second. Ah, thanks for explanations! Indeed it works as you say. Very usefull info, perhaps worth being added to documentation? So if you ACK the attached patch, I ask Andrew to please apply it.
Andrew, the attached patch adds the information about the NMI watchdog frequency caveats to the Documentation/nmi_watchdog.txt Unless there are any objections, please apply.
--- linux/Documentation/nmi_watchdog.txt.old 2004-10-21 21:21:56.000000000 +0400 +++ linux/Documentation/nmi_watchdog.txt 2004-11-18 20:16:37.972370552 +0300 @@ -54,6 +54,20 @@ cannot even accept NMI interrupts, or the crash has made the kernel unable to print messages. +Be aware that when using local APIC, the frequency of NMI interrupts +it generates, depends on the system load. The local APIC NMI watchdog, +lacking a better source, uses the "cycles unhalted" event. As you may +guess it doesn't tick when the CPU is in the halted state (which happens +when the system is idle), but if your system locks up on anything but the +"hlt" processor instruction, the watchdog will trigger very soon as the +"cycles unhalted" event will happen every clock tick. If it locks up on +"hlt", then you are out of luck -- the event will not happen at all and the +watchdog won't trigger. This is a shortcoming of the local APIC watchdog +-- unfortunately there is no "clock ticks" event that would work all the +time. The I/O APIC watchdog is driven externally and has no such shortcoming. +But its NMI frequency is much higher, resulting in a more significant hit +to the overall system performance. + NOTE: starting with 2.4.2-ac18 the NMI-oopser is disabled by default, you have to enable it with a boot time parameter. Prior to 2.4.2-ac18 the NMI-oopser is enabled unconditionally on x86 SMP boxes. | |