From: "Andreas Färber" <afaerber@suse.de>
To: Eduardo Habkost <ehabkost@redhat.com>, qemu-devel@nongnu.org
Cc: Igor Mammedov <imammedo@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 4/7] target-i386: kvm_cpu_fill_host(): No need to check xlevel2
Date: Mon, 20 Jan 2014 22:16:03 +0100 [thread overview]
Message-ID: <52DD9213.7070500@suse.de> (raw)
In-Reply-To: <1390236074-21533-5-git-send-email-ehabkost@redhat.com>
Am 20.01.2014 17:41, schrieb Eduardo Habkost:
> There's no need to check CPU xlevel2 before calling
> kvm_arch_get_supported_cpuid(s, 0xC0000001, 0, R_EDX), because:
>
> * The kernel won't return any entry for 0xC0000000 if host CPU vendor
> is not Centaur (See kvm_dev_ioctl_get_supported_cpuid() on the kernel
> code)
> * Similarly, the kernel won't return any entry for 0xC0000001 if
> CPUID[0xC0000000].EAX is < 0xC0000001
> * kvm_arch_get_supported_cpuid() will return 0 if no entry is returned
> by the kernel for the requested leaf
>
> For similar reasons, we can simply set x86_cpu_def->xlevel2 directly
> instead of making it conditional, because it will be set to 0 CPU vendor
> is not Centaur.
Commented on the wrong version:
"... if CPU vendor is not ..." I guess. :)
>
> This will simplify the kvm_cpu_fill_host() code a little.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> target-i386/cpu.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 1a86bcf..8bc72c2 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -1173,13 +1173,11 @@ static void kvm_cpu_fill_host(x86_def_t *x86_cpu_def)
> cpu_x86_fill_model_id(x86_cpu_def->model_id);
>
> /* Call Centaur's CPUID instruction. */
> - eax = kvm_arch_get_supported_cpuid(s, 0xC0000000, 0, R_EAX);
> - if (eax >= 0xC0000001) {
> - /* Support VIA max extended level */
> - x86_cpu_def->xlevel2 = eax;
> - x86_cpu_def->features[FEAT_C000_0001_EDX] =
> - kvm_arch_get_supported_cpuid(s, 0xC0000001, 0, R_EDX);
> - }
> + x86_cpu_def->xlevel2 =
> + kvm_arch_get_supported_cpuid(s, 0xC0000000, 0, R_EAX);
> + /* Support VIA max extended level */
> + x86_cpu_def->features[FEAT_C000_0001_EDX] =
> + kvm_arch_get_supported_cpuid(s, 0xC0000001, 0, R_EDX);
>
> /* Other KVM-specific feature fields: */
> x86_cpu_def->features[FEAT_SVM] =
Otherwise looks okay to me.
Andreas
--
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-01-20 21:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-20 16:41 [Qemu-devel] [PATCH 0/7 RESEND] target-i386: Simplify kvm_cpu_fill_host() and kvm_check_features_against_host() Eduardo Habkost
2014-01-20 16:41 ` [Qemu-devel] [PATCH 1/7] target-i386: kvm_cpu_fill_host(): Kill unused code Eduardo Habkost
2014-01-20 16:41 ` [Qemu-devel] [PATCH 2/7] target-i386: kvm_cpu_fill_host(): No need to check level Eduardo Habkost
2014-01-20 16:41 ` [Qemu-devel] [PATCH 3/7] target-i386: kvm_cpu_fill_host(): No need to check CPU vendor Eduardo Habkost
2014-01-20 16:41 ` [Qemu-devel] [PATCH 4/7] target-i386: kvm_cpu_fill_host(): No need to check xlevel2 Eduardo Habkost
2014-01-20 21:16 ` Andreas Färber [this message]
2014-01-21 10:52 ` Paolo Bonzini
2014-01-20 16:41 ` [Qemu-devel] [PATCH 5/7] target-i386: kvm_cpu_fill_host(): Set all feature words at end of function Eduardo Habkost
2014-01-20 16:41 ` [Qemu-devel] [PATCH 6/7] target-i386: kvm_cpu_fill_host(): Fill feature words in a loop Eduardo Habkost
2014-01-20 16:41 ` [Qemu-devel] [PATCH 7/7 v2] target-i386: kvm_check_features_against_host(): Kill feature word array Eduardo Habkost
2014-01-20 18:36 ` [Qemu-devel] [PATCH 0/7 RESEND] target-i386: Simplify kvm_cpu_fill_host() and kvm_check_features_against_host() Eduardo Habkost
2014-01-20 18:36 ` Eduardo Habkost
2014-01-20 20:39 ` Michael S. Tsirkin
2014-01-20 20:39 ` Michael S. Tsirkin
2014-01-20 21:07 ` Andreas Färber
2014-01-20 21:07 ` Andreas Färber
2014-01-20 22:51 ` Michael S. Tsirkin
2014-01-20 22:51 ` [Qemu-devel] " Michael S. Tsirkin
2014-01-21 10:03 ` Paolo Bonzini
2014-01-21 10:03 ` Paolo Bonzini
2014-01-21 10:20 ` Andreas Färber
2014-01-21 10:20 ` Andreas Färber
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=52DD9213.7070500@suse.de \
--to=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.