Interpreting MCA error output

Jeremy Chadwick freebsd at
Tue Oct 18 13:45:43 UTC 2011

On Tue, Oct 18, 2011 at 11:31:37PM +1030, Daniel O'Connor wrote:
> On 18/10/2011, at 22:03, Jeremy Chadwick wrote:
> >> It would be _super_ neat if the mcelog port installed a devd rule which emailed root@ with the human readable version of an MCA exception :)
> >> 
> >> I suspect this wouldn't be too difficult to do for a JKH.
> > 
> > Why?  Most MCEs on FreeBSD will panic the machine.  I would need to go
> > through the MCA code to see what all gets handled elegantly, but I
> > imagine there isn't much.
> If you see an MCA in your log file it didn't panic your machine, I think they're not uncommon.

But that's already logged in /var/log/messages.  So I guess we're at a

> > Also, isn't devd for device removal/insertions?  This would be using
> > devd for something it isn't intended for.  I guess I have "moral
> > objections" to it.  What you're really wanting is Solaris's fmd(1m)
> > daemon, which I believe is also tied heavily into Solaris's smf(5)
> > architecture.
> I always thought devd was a fairly general event notification thing.

Possibly you should read devd(8), and after that, definitely look at
devctl(4).  The latter specifically is for devices.  MCA is not a device
(or rather, it is not implemented as a device framework on FreeBSD).

Truly what you're looking for is Solaris fmd(1m).  It's a "generic event
notification thing" that handles all sorts of events, ranging from
physical device additions/removals, to ZFS pool failures, to MCEs --
and it doesn't stop there.

Porting fmd(1m) to FreeBSD would be a wonderful, yet fairly intensive,
GSoC project.  Note that just blindly porting fmd(1m) wouldn't add all
the necessary shims in other pieces to notify fmd of an event, that
would have to be coded (added) over time.

| Jeremy Chadwick                                jdc at |
| Parodius Networking              |
| UNIX Systems Administrator                   Mountain View, CA, US |
| Making life hard for others since 1977.               PGP 4BD6C0CB |

More information about the freebsd-stable mailing list