Re: x86: mce: Please revert 22223c9b417be5fd0ab2cf9ad17eb7bd1e19f7b9

Borislav Petkov
2009-09-30T22:39:59Z

On Wed, Sep 30, 2009 at 11:48:59PM +0200, Ingo Molnar wrote:
> I.e. something like the patch below. Completely untested.

[..]

> Note, while looking at the interaction of decode_mce() with the other
> MCE code i also noticed a few other things and made the following
> cleanups/fixes:
>
> - Fixed the mce_decode() weak alias - a weak alias is really not good
> here, it should be a proper callback. A weak alias will be overriden
> if a piece of code is built into the kernel - not good, obviously.

The original idea was for the edac_mce_amd.o module to override the weak
symbol but the problem with that is that when CONFIG_CPU_SUP_AMD is set,
MCE decoding is built in by default thus overriding the weak symbol even
on non-AMD systems running distro kernels with multiple x86 CPU types
support. Your patch solves that.

However, currently we can't get rid of the decoding code when booted on
non-AMD boxes - it amounts to ~ 15K of object code on non-debug builds.
Is it worth the trouble to add it to initmem on such boxes and remove it
during boot?

> - The patch initializes the callback on AMD family 10h and 11h - a
> quick glance suggests that decoding of earlier models isnt supported?

Actually, the K8 error types and messages should be decoded just fine
too. I'll doublecheck and adjust the family check accordingly.

[..]

> Note that the callback allows us to have a default fallback - without
> having to check the CPU versions during the printout itself. When an
> EDAC module registers itself, it can install the decode-print function.

Cool. It is much cleaner that way.

Thanks, will give it a run tomorrow.

--
Regards/Gruss,
Boris.