
From: Ville Herva <vherva@niksula.hut.fi>

NMI watchdog is nowadays supported on x86-64, too. The nmi-watchdog.txt
document doesn't mention this. Here is a patch to add a few words on that.



 Documentation/nmi_watchdog.txt |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff -puN Documentation/nmi_watchdog.txt~x86_64-nmi-watchog-doc-update Documentation/nmi_watchdog.txt
--- 25/Documentation/nmi_watchdog.txt~x86_64-nmi-watchog-doc-update	2003-08-04 23:14:35.000000000 -0700
+++ 25-akpm/Documentation/nmi_watchdog.txt	2003-08-04 23:14:35.000000000 -0700
@@ -1,9 +1,11 @@
 
-Is your ix86 system locking up unpredictably? No keyboard activity, just
+[NMI watchdog is available for x86 and x86-64 architectures]
+
+Is your system locking up unpredictably? No keyboard activity, just
 a frustrating complete hard lockup? Do you want to help us debugging
 such lockups? If all yes then this document is definitely for you.
 
-On Intel and similar ix86 type hardware there is a feature that enables
+On many x86/x86-64 type hardware there is a feature that enables
 us to generate 'watchdog NMI interrupts'.  (NMI: Non Maskable Interrupt
 which get executed even if the system is otherwise locked up hard).
 This can be used to debug hard kernel lockups.  By executing periodic
@@ -20,6 +22,15 @@ CONFIG_X86_UP_IOAPIC is for uniprocessor
 kernel debugging options, such as Kernel Stack Meter or Kernel Tracer,
 may implicitly disable the NMI watchdog.]
 
+For x86-64, the needed APIC is always compiled in, and the NMI watchdog is
+always enabled with I/O-APIC mode (nmi_watchdog=1). Currently, local APIC
+mode (nmi_watchdog=2) does not work on x86-64.
+
+Using local APIC (nmi_watchdog=2) needs the first performance register, so
+you can't use it for other purposes (such as high precision performance
+profiling.) However, at least oprofile and the perfctr driver disable the
+local APIC NMI watchdog automatically.
+
 To actually enable the NMI watchdog, use the 'nmi_watchdog=N' boot
 parameter.  Eg. the relevant lilo.conf entry:
 

_
