[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/17] target-i386: kvm: -cpu host: Use GET_SUPPORTE
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH 07/17] target-i386: kvm: -cpu host: Use GET_SUPPORTED_CPUID for SVM features |
Date: |
Tue, 8 Jan 2013 21:56:24 +0100 |
From: Eduardo Habkost <address@hidden>
The existing -cpu host code simply sets every bit inside svm_features
(initializing it to -1), and that makes it impossible to make the
enforce/check options work properly when the user asks for SVM features
explicitly in the command-line.
So, instead of initializing svm_features to -1, use GET_SUPPORTED_CPUID
to fill only the bits that are supported by the host (just like we do
for all other CPUID feature words inside kvm_cpu_fill_host()).
This will keep the existing behavior (as filter_features_for_kvm()
already uses GET_SUPPORTED_CPUID to filter svm_features), but will allow
us to properly check for KVM features inside
kvm_check_features_against_host() later.
For example, we will be able to make this:
$ qemu-system-x86_64 -cpu ...,+pfthreshold,enforce
refuse to start if the SVM "pfthreshold" feature is not supported by the
host (after we fix kvm_check_features_against_host() to check SVM flags
as well).
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 | 11 ++++-------
1 Datei geändert, 4 Zeilen hinzugefügt(+), 7 Zeilen entfernt(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 82685dc..1e30015 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -897,13 +897,10 @@ static void kvm_cpu_fill_host(x86_def_t *x86_cpu_def)
}
}
- /*
- * Every SVM feature requires emulation support in KVM - so we can't just
- * read the host features here. KVM might even support SVM features not
- * available on the host hardware. Just set all bits and mask out the
- * unsupported ones later.
- */
- x86_cpu_def->svm_features = -1;
+ /* Other KVM-specific feature fields: */
+ x86_cpu_def->svm_features =
+ kvm_arch_get_supported_cpuid(s, 0x8000000A, 0, R_EDX);
+
#endif /* CONFIG_KVM */
}
--
1.7.10.4
- [Qemu-devel] [PULL] QOM CPUState patch queue 2013-01-08, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 02/17] libqemustub: vmstate register/unregister stubs, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 03/17] libqemustub: sysbus_get_default() stub, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 01/17] libqemustub: Add qemu_[un]register_reset() stubs, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 05/17] qdev: Don't assume existence of parent bus on unparenting, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 04/17] qdev: Include qdev code into *-user, too, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 06/17] cpu: Change parent type to Device, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 08/17] target-i386: kvm: Enable all supported KVM features for -cpu host, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 07/17] target-i386: kvm: -cpu host: Use GET_SUPPORTED_CPUID for SVM features,
Andreas Färber <=
- [Qemu-devel] [PATCH 09/17] target-i386: check/enforce: Fix CPUID leaf numbers on error messages, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 10/17] target-i386: check/enforce: Do not ignore "hypervisor" flag, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 12/17] target-i386: check/enforce: Check SVM flag support as well, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 11/17] target-i386: check/enforce: Check all CPUID.80000001H.EDX bits, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 13/17] target-i386: check/enforce: Eliminate check_feat field, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 16/17] target-i386: Sanitize AMD's ext2_features at realize time, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 15/17] target-i386: Filter out unsupported features at realize time, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 14/17] qemu-common.h: Make qemu_init_vcpu() stub static inline, Andreas Färber, 2013/01/08
- [Qemu-devel] [PATCH 17/17] target-i386: Explicitly set vendor for each built-in cpudef, Andreas Färber, 2013/01/08