]> git.hungrycats.org Git - linux/commit
[PATCH] New machine check handler for x86-64
authorAndi Kleen <ak@suse.de>
Wed, 25 Feb 2004 01:58:41 +0000 (17:58 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 25 Feb 2004 01:58:41 +0000 (17:58 -0800)
commit047379fbbebfa1da88482e227145939015c037a6
treef9239020d738c9440f5575f0d435a33e921d3266
parent386eaf876b09a57bd6036430049f262906b13aba
[PATCH] New machine check handler for x86-64

This adds a new completely rewritten machine check handler for x86-64.
The old one never worked on 2.6.

The new handler has many improvements. It closely follows the Intel and AMD
recommendations on MCE handlers now (the old one had many violations). It handles
unrecoverable errors in user space better now - it will only kill the process now
if possible instead of panicing.

This one is CPU independent now - it should work on any CPU that supports the standard
x86 MCA architecture.

This new handler only logs fatal errors that lead to kernel panic to the console.
Non fatal errors are logged race free into a new (non ring) buffer now
and supplied to the user using a new character device.  The old one could
deadlock on console and printk locks. This also separates machine check errors
from real kernel errors better. The new buffer has been also designed to
be easily accessible from external debugging tools: it has a signature
and could be even recovered after reboot. It is not organized as a ring buffer -
this means the first errors are kept unless explicitely cleared.

The new error formats can be parsed using ftp://ftp.suse.com/pub/people/ak/x86-64/mcelog.c
The new character device for it can be created with mknod /dev/mcelog c 10 227

There is a new sysfs interface to configure the machine check handler.
It has a "tolerant" parameter that defines the aggressiveness of the machine check:

0: always panic
1: panic if deadlock possible (e.g. MCE happened in the kernel)
2: try to avoid panic

Default is 2

Despite of having more features the new handler is shorter.
Documentation/x86_64/boot-options.txt
arch/x86_64/kernel/Makefile
arch/x86_64/kernel/bluesmoke.c [deleted file]
arch/x86_64/kernel/mce.c [new file with mode: 0644]
include/asm-x86_64/mce.h [new file with mode: 0644]