[PATCH 2/2] powerpc: Handle MCE on POWER9 with only DSISR bit 33 set

Michael Neuling mikey at neuling.org
Thu Sep 21 11:50:14 AEST 2017


> > +       /*
> > +        * On POWER9 DD2.1 and below, it's possible to get machine
> > +        * check where only DSISR bit 33 is set. This will result in
> > +        * the MCE handler seeing an unknown event and us crashing.
> > +        * Change this to mark as handled on these revisions.
> > +        */
> > +       pvr = mfspr(SPRN_PVR);
> > +       if (((PVR_VER(pvr) == PVR_POWER9) &&
> > +            (PVR_CFG(pvr) == 2) &&
> > +            (PVR_MIN(pvr) <= 1)) || cpu_has_feature(CPU_FTR_POWER9_DD1))
> > +               /* DD2.1 and below */
> > +               if (mce_err.error_type == MCE_ERROR_TYPE_UNKNOWN)
> > +                   handled = 1;
> > +
> 
> What does this mean in terms of handling? Since we do not know the event,
> how do we recover/handle? The system will anyway crash for not-recovered
> cases. Does this prevent us from seeing the same exception several times?

So the MCE is spurious, so we don't need to do anything in terms of servicing
it. If there is something that needs to be serviced, the CPU will raise the MCE
again with the correct DSISR so that it can be serviced.

I'll add a comment to that effect and report.

Thanks
Mikey


More information about the Linuxppc-dev mailing list