Interpreting MCA error output

Royce Williams royce.williams at
Sat Oct 1 18:11:45 UTC 2011

On Sat, Oct 1, 2011 at 2:23 AM, Jeremy Chadwick
<freebsd at> wrote:


> Decoding the MCE can be done using Linux's mcelog program -- you'll need
> to download the source and apply the patch by hand *and* put in place a
> heavily modified version of memstream.c -- which requires a lot of
> patching to work on FreeBSD, and can only be used to decode
> ASCII-provided MCEs; DMI support does not work.  So, you have to apply
> patches then use "mcelog --no-dmi --ascii" and provide the MCE text via
> stdin (or use --file).

I'm glad to see this thread; I have a different error, for which I
wanted to make sure I was fixing the right problem before randomly
swapping hardware.

> John Baldwin tends to keep up-to-date patches for mcelog here:
> The last build of mcelog I did on FreeBSD was for mcelog-1.0pre2, which
> John's patch (at the time) did not work with.  I made my own patch
> (dated 2011/02/11), but it looks like John has since updated his patch.
> If you need/want mine, I can put it up on the web.

That would be very useful as a crosscheck.

I found one additional intermediate patch from John, posted on
2011-04-26, that appears to have not been merged into ~jhb/mcelog/ :

That patch got me up and going (using 'gmake FREEBSD=yes i386=yes')

My problem is different from the original poster; looks a bit more serious:

royce at heffalump$ ./mcelog --no-dmi --ascii
MCA: Bank 1, Status 0x9400000000000151
MCA: Global Cap 0x0000000000000105, Status 0x0000000000000000
MCA: Vendor "AuthenticAMD", ID 0xfc0, APIC ID 0
MCA: Address 0xc089d890

HARDWARE ERROR. This is *NOT* a software problem!
Please contact your hardware vendor
CPU 0 1 instruction cache
ADDR c089d890
  memory/cache error 'instruction fetch mem transaction, instruction
transaction, level 1'
STATUS 9400000000000151 MCGSTATUS 0
CPUID Vendor AMD Family 15 Model 12

> A few moments ago I tried to download mcelog from the official site, but
> is presently returning NXDOMAIN for me (e.g. A record not
> found).  The same goes for  Great..... is still down from the compromise a few weeks ago.  At
least one mirror still has mcelog-1.0pre2:

The main mcelog page also has a link to how to get it from GitHub
while is down:

Agreed that a port and a CGI would be higher leverage, but these
breadcrumbs should help in the short term.


More information about the freebsd-stable mailing list