[PATCH] i386: Enable NMI watchdog by default
I've had good experiences with having this on by default on x86-64. It turns nasty hangs into easier to debug oopses. Enable the local APIC wdog by default for systems newer than 2004. This comes from a strange compromise: according to arjan the reason it was off by default was some old IBM systems that corrupted registered when NMI happened in SMI. Can't remember more specific, but >= 2004 should avoid these. It's probably overly broad because most older systems should be ok (and the really old systems won't be supported by the local apic watchdog anyways) Signed-off-by: Andi Kleen <ak@suse.de>
This commit is contained in:
parent
260d6790b6
commit
1de84979df
1 changed files with 9 additions and 0 deletions
|
@ -21,6 +21,7 @@
|
|||
#include <linux/sysdev.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/percpu.h>
|
||||
#include <linux/dmi.h>
|
||||
|
||||
#include <asm/smp.h>
|
||||
#include <asm/nmi.h>
|
||||
|
@ -204,6 +205,14 @@ static int __init check_nmi_watchdog(void)
|
|||
unsigned int *prev_nmi_count;
|
||||
int cpu;
|
||||
|
||||
/* Enable NMI watchdog for newer systems.
|
||||
Actually it should be safe for most systems before 2004 too except
|
||||
for some IBM systems that corrupt registers when NMI happens
|
||||
during SMM. Unfortunately we don't have more exact information
|
||||
on these and use this coarse check. */
|
||||
if (nmi_watchdog == NMI_DEFAULT && dmi_get_year(DMI_BIOS_DATE) >= 2004)
|
||||
nmi_watchdog = NMI_LOCAL_APIC;
|
||||
|
||||
if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT))
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Reference in a new issue