From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 2/24] Add VMX and SVM to list of supported cpuid features Date: Mon, 14 Jun 2010 11:13:13 +0300 Message-ID: <4C15E499.1010907@redhat.com> References: <1276431753-nyh@il.ibm.com> <201006131223.o5DCNZeM012879@rice.haifa.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: "Nadav Har'El" Return-path: Received: from mx1.redhat.com ([209.132.183.28]:8577 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751819Ab0FNINQ (ORCPT ); Mon, 14 Jun 2010 04:13:16 -0400 In-Reply-To: <201006131223.o5DCNZeM012879@rice.haifa.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: On 06/13/2010 03:23 PM, Nadav Har'El wrote: > Add the "VMX" CPU feature to the list of CPU featuress KVM advertises with > the KVM_GET_SUPPORTED_CPUID ioctl (unless the "nested" module option is off). > > Qemu uses this ioctl, and intersects KVM's list with its own list of desired > cpu features (depending on the -cpu option given to qemu) to determine the > final list of features presented to the guest. > This patch also does the same for SVM: KVM now advertises it supports SVM, > unless the "nested" module option is off. > > Signed-off-by: Nadav Har'El > --- > --- .before/arch/x86/kvm/x86.c 2010-06-13 15:01:28.000000000 +0300 > +++ .after/arch/x86/kvm/x86.c 2010-06-13 15:01:28.000000000 +0300 > @@ -1923,7 +1923,7 @@ static void do_cpuid_ent(struct kvm_cpui > /* cpuid 1.ecx */ > const u32 kvm_supported_word4_x86_features = > F(XMM3) | 0 /* Reserved, DTES64, MONITOR */ | > - 0 /* DS-CPL, VMX, SMX, EST */ | > + 0 /* DS-CPL */ | (nested ? F(VMX) : 0) | 0 /* SMX, EST */ | > 0 /* TM2 */ | F(SSSE3) | 0 /* CNXT-ID */ | 0 /* Reserved */ | > 0 /* Reserved */ | F(CX16) | 0 /* xTPR Update, PDCM */ | > 0 /* Reserved, DCA */ | F(XMM4_1) | > You can use kvm_x86_ops->set_supported_cpuid() to alter features. > @@ -1931,7 +1931,8 @@ static void do_cpuid_ent(struct kvm_cpui > 0 /* Reserved, XSAVE, OSXSAVE */; > /* cpuid 0x80000001.ecx */ > const u32 kvm_supported_word6_x86_features = > - F(LAHF_LM) | F(CMP_LEGACY) | F(SVM) | 0 /* ExtApicSpace */ | > + F(LAHF_LM) | F(CMP_LEGACY) | (nested ? F(SVM) : 0) | > + 0 /* ExtApicSpace */ | > F(CR8_LEGACY) | F(ABM) | F(SSE4A) | F(MISALIGNSSE) | > F(3DNOWPREFETCH) | 0 /* OSVW */ | 0 /* IBS */ | F(SSE5) | > 0 /* SKINIT */ | 0 /* WDT */; > Good idea, but let's leave it out of the nvmx patches. -- error compiling committee.c: too many arguments to function