Page MenuHomeFreeBSD

powerpc: Add a CPU-custom machine check handler
ClosedPublic

Authored by jhibbits on Feb 17 2020, 7:04 PM.

Details

Summary

Some machine checks are process-recoverable, others are not. Let a
CPU-specific handler decide what to do.

This works around a machine check error hit while building www/firefox
and mail/thunderbird, which would otherwise cause the build to fail.

This is only preliminary, soliticing input. There is more work to be
done for the AIM side, as well as implementing the Book-E side.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

sys/powerpc/aim/aim_machdep.c
520 ↗(On Diff #68465)

Should this have a : "memory"?

sys/powerpc/aim/aim_machdep.c
520 ↗(On Diff #68465)

Maybe. This is an obviously incomplete flush, anyway. The correct thing to do here is to flush the full TLB, not just the one entry.

Update diff, to make it build for Book-E as well.

Might as well merge the spr.h changes anyway, independent of the rest of this patch.

Do we know all supported 32-bit AIM CPUs do the same things with DSISR? Otherwise, it looks good to me.

Do we know all supported 32-bit AIM CPUs do the same things with DSISR? Otherwise, it looks good to me.

The MPC745x "normally" clears bit 10 of SRR1 at machine check, so this should read 0, but is used for debug; I can put a guard on that if it becomes a problem. The PPC970MP behaves like the POWER9 in this instance. I haven't checked the MPC75x, the only other 32-bit AIM CPU we may run on.

This revision was not accepted when it landed; it landed in state Needs Review.May 10 2020, 7:01 PM
This revision was automatically updated to reflect the committed changes.