Re: [PATCH] Add MCE resume under ia32

Shaohua Li
2005-08-24T01:14:24Z

On Tue, 2005-08-23 at 12:32 +0200, Pavel Machek wrote:
> > It's widely seen a MCE non-fatal error reported after resume. It seems
> > MCE resume is lacked under ia32. This patch tries to fix the gap.
>
> Well, you patch seems like missing piece of puzzle, but:
>
> a) we probably want to do it for x86-64, too, and
x86-64 has resume support. It uses 'on_each_cpu' in resume method, which
is known broken. We'd better fix it.

>
> > diff -puN arch/i386/power/cpu.c~mcheck_resume arch/i386/power/cpu.c
> > --- linux-2.6.13-rc6/arch/i386/power/cpu.c~mcheck_resume 2005-08-23 09:32:13.054008584 +0800
> > +++ linux-2.6.13-rc6-root/arch/i386/power/cpu.c 2005-08-23 09:41:54.992540480 +0800
> > @@ -104,6 +104,8 @@ static void fix_processor_context(void)
> >
> > }
> >
> > +extern void mcheck_init(struct cpuinfo_x86 *c);
> > +
> > void __restore_processor_state(struct saved_context *ctxt)
> > {
> > /*
>
>
> this should go to some header file and most importantly
If you agree my other points, I'll do this.

>
> > @@ -138,6 +140,9 @@ void __restore_processor_state(struct sa
> > fix_processor_context();
> > do_fpu_end();
> > mtrr_ap_init();
> > +#ifdef CONFIG_X86_MCE
> > + mcheck_init(&boot_cpu_data);
> > +#endif
> > }
>
> c) can't we register MCEs like some kind of system device so that this
> kind of hooks is not neccessary?
Like x86-64 does, right? In this way, we must register a device for each
cpu. But APs directly call mcheck_init in resume time (cpuhotplug
framework). Only BP requires to call the resume method, so I think
restore_processor_state calls it might be cleaner.

Thanks,
Shaohua