Re: x86: mce: Please revert 22223c9b417be5fd0ab2cf9ad17eb7bd1e19f7b9

Ingo Molnar
2009-09-30T20:47:17Z

* Borislav Petkov <petkovbb@googlemail.com> wrote:

> On Wed, Sep 30, 2009 at 04:09:04PM +0200, Andi Kleen wrote:
> >
> > Can someone please revert this incorrect commit that's in mainline
> > now?
> >
> > Obviously kernels compiled with AMD support can still run on non
> > AMD systems, so messages like this can never be removed at compile time.
> >
> > -andi
> >
> > Commit 22223c9b417be5fd0ab2cf9ad17eb7bd1e19f7b9
> > Author: Borislav Petkov <borislav.petkov@amd.com>
> > Date: Tue Jul 28 14:47:10 2009 +0200
> >
> > x86, mce: do not compile mcelog message on AMD
> >
> > Now that decoding is done in-kernel, suppress mcelog message part.
> >
> > CC: Andi Kleen <andi@firstfloor.org>
> > Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
> >
> > diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> > index b82866f..9bfe9d2 100644
> > --- a/arch/x86/kernel/cpu/mcheck/mce.c
> > +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> > @@ -222,7 +222,10 @@ static void print_mce_head(void)
> > static void print_mce_tail(void)
> > {
> > printk(KERN_EMERG "This is not a software problem!\n"
> > - "Run through mcelog --ascii to decode and contact your hardware vendor\n");
> > +#if (!defined(CONFIG_EDAC) || !defined(CONFIG_CPU_SUP_AMD))
>
> how about
>
> if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
> pr_emerg("Run through mcelog --ascii to decode and contact your hardware vendor\n");
>
> instead?

Yeah, a runtime check like that would be fine - but i'd suggest
something more clearly and more specifically connected to in-kernel
decoding: please define a new x86_mce_can_decode_errors capability flag
or so.

Obviously the Intel CPU side should be fixed and improved to decode MCE
errors in the kernel too.

Please also fix that printk to say something like:

"MCE error decoding not supported on this CPU: run through mcelog --ascii to decode\n"

Thanks,

Ingo