Re: [BUG] kvm: guest can not startup due to triple fault

Dave Young
2010-10-18T13:58:13Z

On Mon, Oct 18, 2010 at 03:50:15PM +0200, Avi Kivity wrote:
> On 10/18/2010 03:46 PM, Avi Kivity wrote:
> > On 10/18/2010 03:45 PM, Dave Young wrote:
> >>On Mon, Oct 18, 2010 at 03:26:30PM +0200, Avi Kivity wrote:
> >>> On 10/18/2010 02:58 PM, Dave Young wrote:
> >>> >>
> >>> >> It's secondary_startup_64 enabling efer.sce and efer.nx.
> >>> >>
> >>> >> Dave, please post your /proc/cpuinfo. Is your host
> >>running with NX
> >>> >> disabled?
> >>> >
> >>> >I see nx bit in /proc/cpuinfo, Actually I don't know how to
> >>disable it.
> >>>
> >>> Strange.
> >>>
> >>> Please patch arch/x86/kvm/x86.c to printk efer_reserved_bits (a
> >>> global), efer (an argument) and old_efer (a local), and post the
> >>> results.
> >>
> >>I add printk before kvm_mmu_reset_context(vcpu), correct? get
> >>following value:
> >>
> >
> >Add it at the beginning please, otherwise we'll miss the important
> >one due to an early return.
> >
>
> No need actually:
>
> >[ 3228.468325] efer_reserved_bits = 0xfffffffffffffafe
>
>
> Bit 11 is reserved, so the guest can't enable nx.
>
> From arch/x86/kvm/vmx.c:
> >static __init int hardware_setup(void)
> >{
> > if (setup_vmcs_config(&vmcs_config) < 0)
> > return -EIO;
> >
> > if (boot_cpu_has(X86_FEATURE_NX))
> > kvm_enable_efer_bits(EFER_NX);
> >
>
> Please patch hardware_setup() to show the value of
> boot_cpu_has(X86_FEATURE_NX).

It's 0