From: "Andreas Färber" <afaerber@suse.de>
To: Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>
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 [thread overview]
Message-ID: <52F6695A.7090801@suse.de> (raw)
In-Reply-To: <1391445551-6561-17-git-send-email-pbonzini@redhat.com>
Am 03.02.2014 17:39, schrieb Paolo Bonzini:
> From: Eduardo Habkost <ehabkost@redhat.com>
>
> 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 <ehabkost@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> 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
next prev parent reply other threads:[~2014-02-08 17:29 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-03 16:38 [Qemu-devel] [PULL 00/16] KVM changes for 2014-02-03 Paolo Bonzini
2014-02-03 16:38 ` [Qemu-devel] [PULL 01/16] target-i386: kvm_cpu_fill_host(): Kill unused code Paolo Bonzini
2014-02-03 16:38 ` [Qemu-devel] [PULL 02/16] target-i386: kvm_cpu_fill_host(): No need to check level Paolo Bonzini
2014-02-03 16:38 ` [Qemu-devel] [PULL 03/16] target-i386: kvm_cpu_fill_host(): No need to check CPU vendor Paolo Bonzini
2014-02-03 16:38 ` [Qemu-devel] [PULL 04/16] target-i386: kvm_cpu_fill_host(): No need to check xlevel2 Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 05/16] target-i386: kvm_cpu_fill_host(): Set all feature words at end of function Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 06/16] target-i386: kvm_cpu_fill_host(): Fill feature words in a loop Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 07/16] target-i386: kvm_check_features_against_host(): Kill feature word array Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 08/16] kvm: print suberror on all internal errors Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 09/16] KVM: fix coexistence of KVM and Hyper-V leaves Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 10/16] kvm: make availability of Hyper-V enlightenments dependent on KVM_CAP_HYPERV Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 11/16] kvm: make hyperv hypercall and guest os id MSRs migratable Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 12/16] kvm: make hyperv vapic assist page migratable Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 13/16] kvm: add support for hyper-v timers Paolo Bonzini
2014-03-04 15:14 ` Peter Maydell
2014-02-03 16:39 ` [Qemu-devel] [PULL 14/16] target-i386: Eliminate CONFIG_KVM #ifdefs Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 15/16] target-i386: Don't change x86_def_t struct on cpu_x86_register() Paolo Bonzini
2014-02-03 16:39 ` [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init Paolo Bonzini
2014-02-08 17:28 ` Andreas Färber [this message]
2014-02-08 23:33 ` Paolo Bonzini
2014-02-09 0:10 ` Peter Maydell
2014-02-09 0:23 ` Peter Maydell
2014-02-09 6:57 ` Paolo Bonzini
2014-02-09 8:25 ` [Qemu-devel] [PATCH] target-i386: Don't declare variables in the middle of blocks Eduardo Habkost
2014-02-19 19:39 ` [Qemu-devel] [qom-cpu PATCH v2] " Eduardo Habkost
2014-02-20 12:48 ` Andreas Färber
2014-02-09 8:06 ` [Qemu-devel] [PULL 16/16] target-i386: Move KVM default-vendor hack to instance_init Eduardo Habkost
2014-02-09 10:13 ` Andreas Färber
2014-02-09 13:06 ` Peter Maydell
2014-02-09 1:41 ` Andreas Färber
2014-02-09 6:52 ` Paolo Bonzini
2014-02-06 11:12 ` [Qemu-devel] [PULL 00/16] KVM changes for 2014-02-03 Peter Maydell
2014-02-06 23:41 ` Paolo Bonzini
2014-02-07 0:03 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52F6695A.7090801@suse.de \
--to=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).