RE: [3.9-rc1] Bug in bootup code or debug code?

From: Yu, Fenghua
Date: Wed Mar 13 2013 - 11:23:10 EST


> -----Original Message-----
> From: Tetsuo Handa [mailto:penguin-kernel@xxxxxxxxxxxxxxxxxxx]
> Sent: Wednesday, March 13, 2013 6:24 AM
> To: Yu, Fenghua; hpa@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [3.9-rc1] Bug in bootup code or debug code?
>
> Tetsuo Handa wrote:
> > Tetsuo Handa wrote:
> > > Hello.
> > >
> > > I can boot linux-next-20130205 using kernel config at
> > > http://I-love.SAKURA.ne.jp/tmp/config-3.8-rc6-next-20130205 .
> > > But I get VMware's virtual machine kernel stack fault (hardware
> reset) as soon
> > > as kernel is loaded if CONFIG_DEBUG_VIRTUAL=y is added to the
> config above.
> > >
> > > Since I don't get kernel stack fault if CONFIG_DEBUG_VIRTUAL=y is
> added to
> > > kernel config generated by "make allnoconfig", I guess something is
> wrong with
> > > code which is executed at very early stage of bootup.
> > >
> > > Any clue?
> > >
> > > Regards.
> > >
> >
> > This bug is not yet fixed as of 3.9-rc1.
> > Should I run git bisect?
> >
> > Regards.
> >
>
> I found the location of "hardware reset" trigger.
>
> It is __pa_symbol(&boot_params) call, for I don't encounter "hardware
> reset" if
> I remove the "//" from below debug patch.
>
> This bug is not yet fixed as of 3.9.0-rc2-00188-g6c23cbb .
>
> --- a/arch/x86/kernel/microcode_intel_early.c
> +++ b/arch/x86/kernel/microcode_intel_early.c
> @@ -741,7 +741,9 @@ load_ucode_intel_bsp(void)
> #ifdef CONFIG_X86_32
> struct boot_params *boot_params_p;
>
> + //while (1);
> boot_params_p = (struct boot_params *)__pa_symbol(&boot_params);
> + while (1);
> ramdisk_image = boot_params_p->hdr.ramdisk_image;
> ramdisk_size = boot_params_p->hdr.ramdisk_size;
> initrd_start_early = ramdisk_image;

Tetsuo and Dave,

That's the place where we suspected to cause the problem.

My question is: how to access global variable in linear mode in virtualization? __pa_symbol() is not a problem for native.

Thanks.

-Fenghua
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/