From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34300) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu0U4-00056t-3l for qemu-devel@nongnu.org; Wed, 04 Nov 2015 11:00:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zu0Tz-00051v-4P for qemu-devel@nongnu.org; Wed, 04 Nov 2015 11:00:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47975) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu0Ty-00051j-VV for qemu-devel@nongnu.org; Wed, 04 Nov 2015 11:00:19 -0500 References: <1446651312-23487-1-git-send-email-ehabkost@redhat.com> From: Paolo Bonzini Message-ID: <563A2B8D.6070609@redhat.com> Date: Wed, 4 Nov 2015 17:00:13 +0100 MIME-Version: 1.0 In-Reply-To: <1446651312-23487-1-git-send-email-ehabkost@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] target-i386: Remove POPCNT from qemu64 and qemu32 CPU models List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost , qemu-devel@nongnu.org Cc: Igor Mammedov , Richard Henderson , "Dr. David Alan Gilbert" , "Michael S. Tsirkin" On 04/11/2015 16:35, Eduardo Habkost wrote: > POPCNT is not available on Penryn and older and on Opteron_G2 and older, > and we want to make the default CPU runnable in most hosts, so it won't > be enabled by default in KVM mode. > > We should eventually have all features supported by TCG enabled by > default in TCG mode, but as we don't have a good mechanism today to > ensure we have different defaults in KVM and TCG mode, disable POPCNT in > the qemu64 and qemu32 CPU models entirely. > > Signed-off-by: Eduardo Habkost > --- > This patch needs to be applied after the series: > Subject: [PATCH v2 0/3] target-i386: Don't trigger CPUID warnings by > default in KVM mode (in most hosts) > --- > include/hw/i386/pc.h | 10 ++++++++++ > target-i386/cpu.c | 4 ++-- > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index 8b54863..4bbc0ff 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -337,6 +337,16 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); > .driver = "qemu64" "-" TYPE_X86_CPU,\ > .property = "abm",\ > .value = "on",\ > + },\ > + {\ > + .driver = "qemu64" "-" TYPE_X86_CPU,\ > + .property = "popcnt",\ > + .value = "on",\ > + },\ > + {\ > + .driver = "qemu32" "-" TYPE_X86_CPU,\ > + .property = "popcnt",\ > + .value = "on",\ > }, > > #define PC_COMPAT_2_3 \ > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 35cd267..5a62ef5 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -671,7 +671,7 @@ static X86CPUDefinition builtin_x86_defs[] = { > CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA | > CPUID_PSE36, > .features[FEAT_1_ECX] = > - CPUID_EXT_SSE3 | CPUID_EXT_CX16 | CPUID_EXT_POPCNT, > + CPUID_EXT_SSE3 | CPUID_EXT_CX16, > .features[FEAT_8000_0001_EDX] = > CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX, > .features[FEAT_8000_0001_ECX] = > @@ -771,7 +771,7 @@ static X86CPUDefinition builtin_x86_defs[] = { > .features[FEAT_1_EDX] = > PPRO_FEATURES, > .features[FEAT_1_ECX] = > - CPUID_EXT_SSE3 | CPUID_EXT_POPCNT, > + CPUID_EXT_SSE3, > .xlevel = 0x80000004, > }, > { > Reviewed-by: Paolo Bonzini