From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qing He Subject: [PATCH 14/17] vmx: nest: enable virtual VMX Date: Thu, 22 Apr 2010 17:41:26 +0800 Message-ID: <1271929289-18572-15-git-send-email-qing.he@intel.com> References: <1271929289-18572-1-git-send-email-qing.he@intel.com> Return-path: In-Reply-To: <1271929289-18572-1-git-send-email-qing.he@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Qing He List-Id: xen-devel@lists.xenproject.org expose VMX cpuid and allow guest to enable VMX. Signed-off-by: Qing He --- arch/x86/hvm/vmx/vmx.c | 5 +++++ include/asm-x86/hvm/hvm.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff -r 0f0e32a70c02 -r 22df5f7ec6d3 xen/arch/x86/hvm/vmx/vmx.c --- a/xen/arch/x86/hvm/vmx/vmx.c Thu Apr 22 22:30:09 2010 +0800 +++ b/xen/arch/x86/hvm/vmx/vmx.c Thu Apr 22 22:30:09 2010 +0800 @@ -1561,6 +1561,11 @@ switch ( input ) { + case 0x1: + if ( v->domain->arch.hvm_domain.nesting_avail ) + *ecx |= 1 << 5; /* VMX capability */ + break; + case 0x80000001: /* SYSCALL is visible iff running in long mode. */ hvm_get_segment_register(v, x86_seg_cs, &cs); diff -r 0f0e32a70c02 -r 22df5f7ec6d3 xen/include/asm-x86/hvm/hvm.h --- a/xen/include/asm-x86/hvm/hvm.h Thu Apr 22 22:30:09 2010 +0800 +++ b/xen/include/asm-x86/hvm/hvm.h Thu Apr 22 22:30:09 2010 +0800 @@ -272,7 +272,8 @@ X86_CR4_DE | X86_CR4_PSE | X86_CR4_PAE | \ X86_CR4_MCE | X86_CR4_PGE | X86_CR4_PCE | \ X86_CR4_OSFXSR | X86_CR4_OSXMMEXCPT | \ - (cpu_has_xsave ? X86_CR4_OSXSAVE : 0)))) + (cpu_has_xsave ? X86_CR4_OSXSAVE : 0) | \ + X86_CR4_VMXE))) /* These exceptions must always be intercepted. */ #define HVM_TRAP_MASK ((1U << TRAP_machine_check) | (1U << TRAP_invalid_op))