From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Young Subject: Re: [BUG] kvm: guest can not startup due to triple fault Date: Mon, 18 Oct 2010 21:58:13 +0800 Message-ID: <20101018135813.GA20316@darkstar> References: <4CBAE8E2.1060704@redhat.com> <4CBBF3C8.9070104@web.de> <4CBC1047.6010501@redhat.com> <20101018125803.GA2497@darkstar> <4CBC4B06.3030300@redhat.com> <20101018134508.GA11885@darkstar> <4CBC4FA9.90406@redhat.com> <4CBC5097.1020105@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Jan Kiszka , kvm@vger.kernel.org, linux-kernel@vger.kernel.org To: Avi Kivity Return-path: Content-Disposition: inline In-Reply-To: <4CBC5097.1020105@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 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