From: Don Slutz <Don@CloudSwitch.Com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: <qemu-devel@nongnu.org>, <kvm@vger.kernel.org>, <imammedo@redhat.com>
Subject: Re: [PATCH 2/2] target-i386: Fix default Hypervisor level for hypervisor-vendor=kvm.
Date: Tue, 18 Sep 2012 15:32:04 -0400 [thread overview]
Message-ID: <5058CC34.3030405@CloudSwitch.Com> (raw)
In-Reply-To: <20120918170049.GB3983@otherpad.lan.raisama.net>
On 09/18/12 13:00, Eduardo Habkost wrote:
> On Tue, Sep 18, 2012 at 10:49:53AM -0400, Don Slutz wrote:
>> From http://lkml.indiana.edu/hypermail/linux/kernel/1205.0/00100.html
>> EAX should be KVM_CPUID_FEATURES (0x40000001) not 0.
>>
>> If kvm is not configured, the additional option of hypervisor-level=1
>> (or hypervisor-level=0x40000001) needs to be specified to get this.
>> ---
>> target-i386/cpu.c | 12 +++++++++++-
>> 1 files changed, 11 insertions(+), 1 deletions(-)
>>
>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>> index 6e43eff..d73b0a8 100644
>> --- a/target-i386/cpu.c
>> +++ b/target-i386/cpu.c
>> @@ -1248,7 +1248,12 @@ static char *x86_cpuid_get_hv_vendor(Object *obj, Error **errp)
>> env->cpuid_hv_level == CPUID_HV_LEVEL_XEN) {
>> pstrcpy(value, sizeof(value), "xen");
>> } else if (!strcmp(value, CPUID_HV_VENDOR_KVM) &&
>> - env->cpuid_hv_level == 0) {
>> +#if defined(CONFIG_KVM)
>> + env->cpuid_hv_level == KVM_CPUID_FEATURES
>> +#else
>> + env->cpuid_hv_level == 0
>> +#endif
>> + ) {
>> pstrcpy(value, sizeof(value), "kvm");
>> }
>> return value;
>> @@ -1281,6 +1286,11 @@ static void x86_cpuid_set_hv_vendor(Object *obj, const char *value,
>> }
>> pstrcpy(adj_value, sizeof(adj_value), CPUID_HV_VENDOR_XEN);
>> } else if (!strcmp(value, "kvm")) {
>> +#if defined(CONFIG_KVM)
>> + if (env->cpuid_hv_level == 0) {
>> + env->cpuid_hv_level = KVM_CPUID_FEATURES;
>> + }
>> +#endif
> If CPUID[0x40000000].EAX set to 0 is documented as equivalent to having
> it set to 0x40000001 (KVM_CPUID_FEATURES), why the confusing checks for
> CONFIG_KVM? Why not always set it to KVM_CPUID_FEATURES?
>
At line 36 of the file:
#if defined(CONFIG_KVM)
#include <linux/kvm_para.h>
#endif
So without the check you get compile failures (i386-linux-user).
I have no issue with removing the check(s) for 0. Currently
hypervisor-level=0 will not force the old values; I can make a change so
that works.
-Don Slutz
WARNING: multiple messages have this Message-ID (diff)
From: Don Slutz <Don@CloudSwitch.Com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: imammedo@redhat.com, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH 2/2] target-i386: Fix default Hypervisor level for hypervisor-vendor=kvm.
Date: Tue, 18 Sep 2012 15:32:04 -0400 [thread overview]
Message-ID: <5058CC34.3030405@CloudSwitch.Com> (raw)
In-Reply-To: <20120918170049.GB3983@otherpad.lan.raisama.net>
On 09/18/12 13:00, Eduardo Habkost wrote:
> On Tue, Sep 18, 2012 at 10:49:53AM -0400, Don Slutz wrote:
>> From http://lkml.indiana.edu/hypermail/linux/kernel/1205.0/00100.html
>> EAX should be KVM_CPUID_FEATURES (0x40000001) not 0.
>>
>> If kvm is not configured, the additional option of hypervisor-level=1
>> (or hypervisor-level=0x40000001) needs to be specified to get this.
>> ---
>> target-i386/cpu.c | 12 +++++++++++-
>> 1 files changed, 11 insertions(+), 1 deletions(-)
>>
>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>> index 6e43eff..d73b0a8 100644
>> --- a/target-i386/cpu.c
>> +++ b/target-i386/cpu.c
>> @@ -1248,7 +1248,12 @@ static char *x86_cpuid_get_hv_vendor(Object *obj, Error **errp)
>> env->cpuid_hv_level == CPUID_HV_LEVEL_XEN) {
>> pstrcpy(value, sizeof(value), "xen");
>> } else if (!strcmp(value, CPUID_HV_VENDOR_KVM) &&
>> - env->cpuid_hv_level == 0) {
>> +#if defined(CONFIG_KVM)
>> + env->cpuid_hv_level == KVM_CPUID_FEATURES
>> +#else
>> + env->cpuid_hv_level == 0
>> +#endif
>> + ) {
>> pstrcpy(value, sizeof(value), "kvm");
>> }
>> return value;
>> @@ -1281,6 +1286,11 @@ static void x86_cpuid_set_hv_vendor(Object *obj, const char *value,
>> }
>> pstrcpy(adj_value, sizeof(adj_value), CPUID_HV_VENDOR_XEN);
>> } else if (!strcmp(value, "kvm")) {
>> +#if defined(CONFIG_KVM)
>> + if (env->cpuid_hv_level == 0) {
>> + env->cpuid_hv_level = KVM_CPUID_FEATURES;
>> + }
>> +#endif
> If CPUID[0x40000000].EAX set to 0 is documented as equivalent to having
> it set to 0x40000001 (KVM_CPUID_FEATURES), why the confusing checks for
> CONFIG_KVM? Why not always set it to KVM_CPUID_FEATURES?
>
At line 36 of the file:
#if defined(CONFIG_KVM)
#include <linux/kvm_para.h>
#endif
So without the check you get compile failures (i386-linux-user).
I have no issue with removing the check(s) for 0. Currently
hypervisor-level=0 will not force the old values; I can make a change so
that works.
-Don Slutz
next prev parent reply other threads:[~2012-09-18 19:32 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 14:49 [PATCH 0/2] target-i386: Fix default Hypervisor level for kvm Don Slutz
2012-09-18 14:49 ` [Qemu-devel] " Don Slutz
2012-09-18 14:49 ` [PATCH 1/2] target-i386: Fix default Hypervisor level for accel=kvm Don Slutz
2012-09-18 14:49 ` [Qemu-devel] " Don Slutz
2012-09-18 15:05 ` Eduardo Habkost
2012-09-18 15:05 ` [Qemu-devel] " Eduardo Habkost
2012-09-18 20:19 ` Don Slutz
2012-09-18 20:19 ` [Qemu-devel] " Don Slutz
2012-09-18 14:49 ` [PATCH 2/2] target-i386: Fix default Hypervisor level for hypervisor-vendor=kvm Don Slutz
2012-09-18 14:49 ` [Qemu-devel] " Don Slutz
2012-09-18 17:00 ` Eduardo Habkost
2012-09-18 17:00 ` [Qemu-devel] " Eduardo Habkost
2012-09-18 19:32 ` Don Slutz [this message]
2012-09-18 19:32 ` Don Slutz
2012-09-19 13:20 ` Eduardo Habkost
2012-09-19 13:20 ` [Qemu-devel] " Eduardo Habkost
2012-09-19 16:32 ` Don Slutz
2012-09-19 16:32 ` [Qemu-devel] " Don Slutz
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=5058CC34.3030405@CloudSwitch.Com \
--to=don@cloudswitch.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=kvm@vger.kernel.org \
--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.