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

From: Tetsuo Handa
Date: Wed Mar 13 2013 - 16:46:13 EST


H. Peter Anvin wrote:
> On 03/13/2013 08:22 AM, Yu, Fenghua wrote:
> >>
> >> 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.
> >
>
> What kind of virtualization are we talking about here? We should not be
> running this code under any paravirtualized code path -- this is the
> hypervisor's job to take care of this. For HVM, this should just work
> the same way.
>
> -hpa
>
H. Peter Anvin wrote:
> This is a CONFIG_DEBUG_VIRTUAL configuration, isn't it?

Yes. CONFIG_MICROCODE_INTEL_EARLY=y && CONFIG_64BIT=n && CONFIG_DEBUG_VIRTUAL=y
on VMware Workstation/Player environment.
--
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/