[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init |
Date: |
Sat, 08 Feb 2014 18:28:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
Am 03.02.2014 17:39, schrieb Paolo Bonzini:
> From: Eduardo Habkost <address@hidden>
>
> As we will not have a cpu_x86_find_by_name() function anymore,
> move the KVM default-vendor hack to instance_init.
>
> Unfortunately we can't move that code to class_init because it depends
> on KVM being initialized.
>
> Signed-off-by: Eduardo Habkost <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> target-i386/cpu.c | 32 +++++++++++++++++++-------------
> 1 file changed, 19 insertions(+), 13 deletions(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index be54f84..0e8812a 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -1601,18 +1601,6 @@ static int cpu_x86_find_by_name(X86CPU *cpu, x86_def_t
> *x86_cpu_def,
> def = &builtin_x86_defs[i];
> if (strcmp(name, def->name) == 0) {
> memcpy(x86_cpu_def, def, sizeof(*def));
> - /* sysenter isn't supported in compatibility mode on AMD,
> - * syscall isn't supported in compatibility mode on Intel.
> - * Normally we advertise the actual CPU vendor, but you can
> - * override this using the 'vendor' property if you want to use
> - * KVM's sysenter/syscall emulation in compatibility mode and
> - * when doing cross vendor migration
> - */
> - if (kvm_enabled()) {
> - uint32_t ebx = 0, ecx = 0, edx = 0;
> - host_cpuid(0, 0, NULL, &ebx, &ecx, &edx);
> - x86_cpu_vendor_words2str(x86_cpu_def->vendor, ebx, edx, ecx);
> - }
> return 0;
> }
> }
> @@ -1841,7 +1829,6 @@ static void cpu_x86_register(X86CPU *cpu, const char
> *name, Error **errp)
> return;
> }
>
> - object_property_set_str(OBJECT(cpu), def->vendor, "vendor", errp);
> object_property_set_int(OBJECT(cpu), def->level, "level", errp);
> object_property_set_int(OBJECT(cpu), def->family, "family", errp);
> object_property_set_int(OBJECT(cpu), def->model, "model", errp);
> @@ -1865,6 +1852,25 @@ static void cpu_x86_register(X86CPU *cpu, const char
> *name, Error **errp)
> env->features[FEAT_KVM] |= kvm_default_features;
> }
> env->features[FEAT_1_ECX] |= CPUID_EXT_HYPERVISOR;
> +
> + /* sysenter isn't supported in compatibility mode on AMD,
> + * syscall isn't supported in compatibility mode on Intel.
> + * Normally we advertise the actual CPU vendor, but you can
> + * override this using the 'vendor' property if you want to use
> + * KVM's sysenter/syscall emulation in compatibility mode and
> + * when doing cross vendor migration
> + */
> + const char *vendor = def->vendor;
> + char host_vendor[CPUID_VENDOR_SZ + 1];
Since when is it OK to declare variables in the middle of the block?
Are you planning to fix that?
Once again I note that a patch to a file under my maintenance was
applied without my review - and promptly a style bug slipped through. It
was not a bug fix, so there was no urgency in applying it.
Andreas
> + if (kvm_enabled()) {
> + 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);
> + vendor = host_vendor;
> + }
> +
> + object_property_set_str(OBJECT(cpu), vendor, "vendor", errp);
> +
> }
>
> X86CPU *cpu_x86_create(const char *cpu_model, DeviceState *icc_bridge,
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- [Qemu-devel] [PULL 10/16] kvm: make availability of Hyper-V enlightenments dependent on KVM_CAP_HYPERV, (continued)
- [Qemu-devel] [PULL 10/16] kvm: make availability of Hyper-V enlightenments dependent on KVM_CAP_HYPERV, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 11/16] kvm: make hyperv hypercall and guest os id MSRs migratable., Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 13/16] kvm: add support for hyper-v timers, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 14/16] target-i386: Eliminate CONFIG_KVM #ifdefs, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 15/16] target-i386: Don't change x86_def_t struct on cpu_x86_register(), Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 03/16] target-i386: kvm_cpu_fill_host(): No need to check CPU vendor, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 05/16] target-i386: kvm_cpu_fill_host(): Set all feature words at end of function, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 07/16] target-i386: kvm_check_features_against_host(): Kill feature word array, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 12/16] kvm: make hyperv vapic assist page migratable, Paolo Bonzini, 2014/02/03
- [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Paolo Bonzini, 2014/02/03
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init,
Andreas Färber <=
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Paolo Bonzini, 2014/02/08
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Peter Maydell, 2014/02/08
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Peter Maydell, 2014/02/08
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Paolo Bonzini, 2014/02/09
- [Qemu-devel] [PATCH] target-i386: Don't declare variables in the middle of blocks, Eduardo Habkost, 2014/02/09
- [Qemu-devel] [qom-cpu PATCH v2] target-i386: Don't declare variables in the middle of blocks, Eduardo Habkost, 2014/02/19
- Re: [Qemu-devel] [qom-cpu PATCH v2] target-i386: Don't declare variables in the middle of blocks, Andreas Färber, 2014/02/20
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Eduardo Habkost, 2014/02/09
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Andreas Färber, 2014/02/09
- Re: [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init, Peter Maydell, 2014/02/09