[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/20] target-i386: check/enforce: Check all feature
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH 13/20] target-i386: check/enforce: Check all feature words |
Date: |
Tue, 15 Jan 2013 10:27:31 +0100 |
From: Eduardo Habkost <address@hidden>
This adds the following feature words to the list of flags to be checked
by kvm_check_features_against_host():
- cpuid_7_0_ebx_features
- ext4_features
- kvm_features
- svm_features
This will ensure the "enforce" flag works as it should: it won't allow
QEMU to be started unless every flag that was requested by the user or
defined in the CPU model is supported by the host.
This patch may cause existing configurations where "enforce" wasn't
preventing QEMU from being started to abort QEMU. But that's exactly the
point of this patch: if a flag was not supported by the host and QEMU
wasn't aborting, it was a bug in the "enforce" code.
Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Gleb Natapov <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
target-i386/cpu.c | 13 +++++++++++--
1 Datei geändert, 11 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 8ec9929..9a48e3f 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1016,8 +1016,9 @@ static int unavailable_host_feature(FeatureWordInfo *f,
uint32_t mask)
return 0;
}
-/* best effort attempt to inform user requested cpu flags aren't making
- * their way to the guest.
+/* Check if all requested cpu flags are making their way to the guest
+ *
+ * Returns 0 if all flags are supported by the host, non-zero otherwise.
*
* This function may be called only if KVM is enabled.
*/
@@ -1035,6 +1036,14 @@ static int kvm_check_features_against_host(x86_def_t
*guest_def)
FEAT_8000_0001_EDX },
{&guest_def->ext3_features, &host_def.ext3_features,
FEAT_8000_0001_ECX },
+ {&guest_def->ext4_features, &host_def.ext4_features,
+ FEAT_C000_0001_EDX },
+ {&guest_def->cpuid_7_0_ebx_features, &host_def.cpuid_7_0_ebx_features,
+ FEAT_7_0_EBX },
+ {&guest_def->svm_features, &host_def.svm_features,
+ FEAT_SVM },
+ {&guest_def->kvm_features, &host_def.kvm_features,
+ FEAT_KVM },
};
assert(kvm_enabled());
--
1.7.10.4
- [Qemu-devel] [PULL] QOM CPUState patch queue 2013-01-15, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 01/20] cpu: Move nr_{cores, threads} fields to CPUState, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 02/20] target-mips: Clean up mips_cpu_map_tc() documentation, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 03/20] cpu: Move numa_node field to CPUState, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 05/20] kvm: Pass CPUState to kvm_init_vcpu(), Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 06/20] xen: Simplify halting of first CPU, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 07/20] exec: Return CPUState from qemu_get_cpu(), Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 08/20] kvm: Add fake KVM constants to avoid #ifdefs on KVM-specific code, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 11/20] target-i386: kvm_check_features_against_host(): Use feature_word_info, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 13/20] target-i386: check/enforce: Check all feature words,
Andreas Färber <=
- [Qemu-devel] [PATCH 09/20] target-i386: Disable kvm_mmu by default, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 04/20] cpu: Move cpu_index field to CPUState, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 10/20] target-i386/cpu: Introduce FeatureWord typedefs, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 12/20] target-i386/cpu.c: Add feature name array for ext4_features, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 14/20] target-i386: Move setting defaults out of cpu_x86_parse_featurestr(), Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 18/20] target-i386: Introduce hw_{local, global}_breakpoint_enabled(), Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 17/20] target-i386: Define DR7 bit field constants, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 16/20] target-i386: Move kvm_check_features_against_host() check to realize time, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 15/20] target-i386: cpu_x86_register() consolidate freeing resources, Andreas Färber, 2013/01/15
- [Qemu-devel] [PATCH 20/20] target-i386: Use switch in check_hw_breakpoints(), Andreas Färber, 2013/01/15