Re: [PATCH 07/14] mce3: pass mce info to EDAC for decoding

Doug Thompson
2009-07-20T18:27:14Z

--- On Mon, 7/20/09, Andi Kleen <andi@firstfloor.org> wrote:

> From: Andi Kleen <andi@firstfloor.org>
> Subject: Re: [PATCH 07/14] mce3: pass mce info to EDAC for decoding
> To: "Borislav Petkov" <borislav.petkov@amd.com>
> Cc: mingo@elte.hu, hpa@zytor.com, tglx@linutronix.de, norsk5@yahoo.com, aris@redhat.com, linux-kernel@vger.kernel.org, x86@kernel.org, "Andi Kleen" <andi@firstfloor.org>
> Date: Monday, July 20, 2009, 12:04 PM
> On Mon, Jul 20, 2009 at 06:12:58PM
> +0200, Borislav Petkov wrote:
> > Use a weakly defined symbol instead of ugly ifdefs.
>
> I'm not sure what you're trying to achieve,

The goal is to have a default handler within the kernel and a more specific handler in a module after it has loaded. Using the weak symbol as a mechanism to do that. I haven't used that, so I don't know if it works.

> but if you're
> trying to catch corrected MCs you're hooking into the
> wrong function. print_mce is only called for PCC=1.
>
> Also if you're checking for specific banks you
> need to check for vendor/cpu model first of course.
>
> In your current implementation e.g. a Intel CPU
> would pass some random event into your AMD specific code,
> which is probably not intended and might even crash.

On an Intel CPU based system, the AMD EDAC module wouldn't load due the missing AMD PCI Vendor/Device ID values during the module probe phase.

>
> It would be probably cleaner if you defined a standard
> notifier chain interface.

That might be a better and explicit solution

doug t

>
> -Andi
>