[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 24/25] target-i386: Accept "host" as value for CPU ven
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 24/25] target-i386: Accept "host" as value for CPU vendor |
Date: |
Wed, 9 Jul 2014 19:04:21 -0300 |
When using vendor=host, the host CPU vendor will be used.
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 406ce02..eaae1ce 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1528,8 +1528,16 @@ static void x86_cpuid_set_vendor(Object *obj, const char
*value,
{
X86CPU *cpu = X86_CPU(obj);
CPUX86State *env = &cpu->env;
+ char host_vendor[CPUID_VENDOR_SZ + 1];
int i;
+ if (!strcmp(value, "host")) {
+ uint32_t ebx = 0, ecx = 0, edx = 0;
+ host_cpuid(0, 0, NULL, &ebx, &ecx, &edx);
+ x86_cpu_vendor_words2str(host_vendor, ebx, edx, ecx);
+ value = host_vendor;
+ }
+
if (strlen(value) != CPUID_VENDOR_SZ) {
error_set(errp, QERR_PROPERTY_VALUE_BAD, "",
"vendor", value);
@@ -1996,8 +2004,6 @@ static void x86_cpu_accel_init(X86CPU *cpu, Error **errp)
static int inited;
if (kvm_enabled()) {
- char host_vendor[CPUID_VENDOR_SZ + 1];
- uint32_t ebx = 0, ecx = 0, edx = 0;
FeatureWord w;
for (w = 0; w < FEATURE_WORDS; w++) {
env->features[w] |= kvm_default_features[w];
@@ -2011,9 +2017,7 @@ static void x86_cpu_accel_init(X86CPU *cpu, Error **errp)
* KVM's sysenter/syscall emulation in compatibility mode and
* when doing cross vendor migration
*/
- host_cpuid(0, 0, NULL, &ebx, &ecx, &edx);
- x86_cpu_vendor_words2str(host_vendor, ebx, edx, ecx);
- object_property_set_str(OBJECT(cpu), host_vendor, "vendor", errp);
+ object_property_set_str(OBJECT(cpu), "host", "vendor", errp);
}
/* init various static tables used in TCG mode */
--
1.9.3
- [Qemu-devel] [RFC 09/25] accel: Move Xen registration code to xen-common.c, (continued)
- [Qemu-devel] [RFC 09/25] accel: Move Xen registration code to xen-common.c, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 10/25] accel: Move qtest accel registration to qtest.c, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 11/25] accel: Remove tcg_available() function, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 13/25] accel: Rename 'init' method to 'init_machine', Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 14/25] accel: Pass MachineState object to accel init functions, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 12/25] accel: Move accel init/allowed code to separate function, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 16/25] accel: Save AccelState on MachineState when initializing, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 15/25] accel: Create accel object when initializing machine, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 17/25] kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 20/25] accel: TYPE_X86_ACCEL interface, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 24/25] target-i386: Accept "host" as value for CPU vendor,
Eduardo Habkost <=
- [Qemu-devel] [RFC 23/25] target-i386: Move accelerator-specific code outside X86CPU.instance_init, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 18/25] accel: Get target name as argument when initializing accelerator, Eduardo Habkost, 2014/07/09
- [Qemu-devel] [RFC 25/25] target-i386: Move KVM CPUID hacking to accelerator cpu_post_init hook, Eduardo Habkost, 2014/07/10
- [Qemu-devel] [RFC 21/25] kvm: x86 KVM accelerator subclass, Eduardo Habkost, 2014/07/10
- [Qemu-devel] [RFC 19/25] accel: Use target-specific accel class if available, Eduardo Habkost, 2014/07/10
- [Qemu-devel] [RFC 22/25] target-i386: Add AccelState parameter to cpu_x86_create(), Eduardo Habkost, 2014/07/10