From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35244) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WketO-0008P5-KM for qemu-devel@nongnu.org; Wed, 14 May 2014 15:31:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WketH-000199-Ih for qemu-devel@nongnu.org; Wed, 14 May 2014 15:31:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:61666) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WketH-00018t-Ay for qemu-devel@nongnu.org; Wed, 14 May 2014 15:30:59 -0400 From: Eduardo Habkost Date: Wed, 14 May 2014 16:29:53 -0300 Message-Id: <1400095810-27684-2-git-send-email-ehabkost@redhat.com> In-Reply-To: <1400095810-27684-1-git-send-email-ehabkost@redhat.com> References: <1400095810-27684-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PATCH RESEND v4 01/18] target-i386: kvm: Don't enable MONITOR by default on any CPU model List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, =?UTF-8?q?Andreas=20F=C3=A4rber?= KVM never supported the MONITOR flag so it doesn't make sense to have it enabled by default when KVM is enabled. The rationale here is similar to the cases where it makes sense to have a feature enabled by default on all CPU models when on KVM mode (e.g. x2apic). In this case we are having a feature disabled by default for the same reasons. In this case we don't need machine-type compat code because it is currently impossible to run a KVM VM with the MONITOR flag set. Reviewed-by: Paolo Bonzini Signed-off-by: Eduardo Habkost --- target-i386/cpu.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 8f193a9..694348e 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -372,6 +372,12 @@ static uint32_t kvm_default_features[FEATURE_WORDS] = { [FEAT_1_ECX] = CPUID_EXT_X2APIC, }; +/* Features that are not added by default to any CPU model when KVM is enabled. + */ +static uint32_t kvm_default_unset_features[FEATURE_WORDS] = { + [FEAT_1_ECX] = CPUID_EXT_MONITOR, +}; + void x86_cpu_compat_disable_kvm_features(FeatureWord w, uint32_t features) { kvm_default_features[w] &= ~features; @@ -1893,6 +1899,7 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefinition *def, Error **errp) FeatureWord w; for (w = 0; w < FEATURE_WORDS; w++) { env->features[w] |= kvm_default_features[w]; + env->features[w] &= ~kvm_default_unset_features[w]; } } -- 1.9.0