diff options
author | jhb <jhb@FreeBSD.org> | 2012-04-02 15:07:22 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2012-04-02 15:07:22 +0000 |
commit | e14923e42ffe180ed7774dafaf9010345a12e068 (patch) | |
tree | 7f7eb6a9bb253e012a5e839837563443a04c354a /sys/i386 | |
parent | f9eb81a65100ad1d0570fca44c65be34721b17cb (diff) | |
download | FreeBSD-src-e14923e42ffe180ed7774dafaf9010345a12e068.zip FreeBSD-src-e14923e42ffe180ed7774dafaf9010345a12e068.tar.gz |
Make machine check exception logging more readable. On newer Intel systems,
an uncorrected ECC error tends to fire on all CPUs in a package
simultaneously and the current printf hacks are not sufficient to make
the messages legible. Instead, use the existing mca_lock spinlock to
serialize calls to mca_log() and change the machine check code to panic
directly when an unrecoverable error is encoutered rather than falling
back to a trap_fatal() call in trap() (which adds nearly a screen-full of
logging messages that aren't useful for machine checks).
MFC after: 2 weeks
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/i386/trap.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index bd6019a..41495b4 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -254,8 +254,7 @@ trap(struct trapframe *frame) #endif if (type == T_MCHK) { - if (!mca_intr()) - trap_fatal(frame, 0); + mca_intr(); goto out; } |