mirror of https://gitee.com/openkylin/linux.git
[PATCH] x86_64: Log machine checks from boot on Intel systems
The logging for boot errors was turned off because it was broken on some AMD systems. But give Intel EM64T systems a chance because they are supposed to be correct there. The advantage is that there is a chance to actually log uncorrected machine checks after the reset. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
b0bd35e622
commit
e583538f07
|
@ -7,10 +7,12 @@ Machine check
|
|||
|
||||
mce=off disable machine check
|
||||
mce=bootlog Enable logging of machine checks left over from booting.
|
||||
Disabled by default because some BIOS leave bogus ones.
|
||||
Disabled by default on AMD because some BIOS leave bogus ones.
|
||||
If your BIOS doesn't do that it's a good idea to enable though
|
||||
to make sure you log even machine check events that result
|
||||
in a reboot.
|
||||
in a reboot. On Intel systems it is enabled by default.
|
||||
mce=nobootlog
|
||||
Disable boot machine check logging.
|
||||
mce=tolerancelevel (number)
|
||||
0: always panic, 1: panic if deadlock possible,
|
||||
2: try to avoid panic, 3: never panic or exit (for testing)
|
||||
|
|
|
@ -37,7 +37,7 @@ static unsigned long bank[NR_BANKS] = { [0 ... NR_BANKS-1] = ~0UL };
|
|||
static unsigned long console_logged;
|
||||
static int notify_user;
|
||||
static int rip_msr;
|
||||
static int mce_bootlog;
|
||||
static int mce_bootlog = 1;
|
||||
|
||||
/*
|
||||
* Lockless MCE logging infrastructure.
|
||||
|
@ -347,7 +347,11 @@ static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c)
|
|||
/* disable GART TBL walk error reporting, which trips off
|
||||
incorrectly with the IOMMU & 3ware & Cerberus. */
|
||||
clear_bit(10, &bank[4]);
|
||||
/* Lots of broken BIOS around that don't clear them
|
||||
by default and leave crap in there. Don't log. */
|
||||
mce_bootlog = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c)
|
||||
|
@ -498,16 +502,16 @@ static int __init mcheck_disable(char *str)
|
|||
/* mce=off disables machine check. Note you can reenable it later
|
||||
using sysfs.
|
||||
mce=TOLERANCELEVEL (number, see above)
|
||||
mce=bootlog Log MCEs from before booting. Disabled by default to work
|
||||
around buggy BIOS that leave bogus MCEs. */
|
||||
mce=bootlog Log MCEs from before booting. Disabled by default on AMD.
|
||||
mce=nobootlog Don't log MCEs from before booting. */
|
||||
static int __init mcheck_enable(char *str)
|
||||
{
|
||||
if (*str == '=')
|
||||
str++;
|
||||
if (!strcmp(str, "off"))
|
||||
mce_dont_init = 1;
|
||||
else if (!strcmp(str, "bootlog"))
|
||||
mce_bootlog = 1;
|
||||
else if (!strcmp(str, "bootlog") || !strcmp(str,"nobootlog"))
|
||||
mce_bootlog = str[0] == 'b';
|
||||
else if (isdigit(str[0]))
|
||||
get_option(&str, &tolerant);
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue