Messages in this thread | | | From | "Yu, Fenghua" <> | Subject | RE: [3.9-rc1] Bug in bootup code or debug code? | Date | Tue, 19 Mar 2013 22:12:39 +0000 |
| |
> From: Tetsuo Handa [mailto:penguin-kernel@I-love.SAKURA.ne.jp] > 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.
Tetsuo,
I just now sent out a patch to fix this issue and you are in the list.
Could you please verify if it fixes the issue you saw?
Thanks.
-Fenghua
| |