summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2012-04-02 15:07:22 +0000
committerjhb <jhb@FreeBSD.org>2012-04-02 15:07:22 +0000
commite14923e42ffe180ed7774dafaf9010345a12e068 (patch)
tree7f7eb6a9bb253e012a5e839837563443a04c354a /sys/i386
parentf9eb81a65100ad1d0570fca44c65be34721b17cb (diff)
downloadFreeBSD-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.c3
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;
}
OpenPOWER on IntegriCloud