From: Don Slutz <Don@CloudSwitch.Com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>, <qemu-devel@nongnu.org>,
<mtosatti@redhat.com>, <avi@redhat.com>, <afaerber@suse.de>,
<peter.maydell@linaro.org>, <kvm@vger.kernel.org>,
<anthony@codemonkey.ws>
Subject: Re: [PATCH v4 02/17] target-i386: Add missing kvm bits.
Date: Fri, 21 Sep 2012 09:17:19 -0400 [thread overview]
Message-ID: <505C68DF.3060801@CloudSwitch.Com> (raw)
In-Reply-To: <20120921123602.GZ3983@otherpad.lan.raisama.net>
On 09/21/12 08:36, Eduardo Habkost wrote:
> On Fri, Sep 21, 2012 at 10:39:52AM +0200, Igor Mammedov wrote:
>> On Thu, 20 Sep 2012 16:03:17 -0400
>> Don Slutz <Don@cloudswitch.com> wrote:
>>
>>> Fix duplicate name (kvmclock => kvm_clock2) also.
>>>
>>> Signed-off-by: Don Slutz <Don@CloudSwitch.com>
>>> ---
>>> target-i386/cpu.c | 12 ++++++++----
>>> 1 files changed, 8 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>> index 0313cf5..5f9866a 100644
>>> --- a/target-i386/cpu.c
>>> +++ b/target-i386/cpu.c
>>> @@ -87,10 +87,14 @@ static const char *ext3_feature_name[] = {
>>> };
>>>
>>> static const char *kvm_feature_name[] = {
>>> - "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvmclock", "kvm_asyncpf", NULL, "kvm_pv_eoi", NULL,
>>> - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>>> - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>>> - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>>> + "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvm_clock2",
>> before patch if "kvmclock" is specified it would set 0 and 3 bits,
>> after patch only bit 0 is set.
>> Is it correct/expected behavior? if yes, please add rationale into patch
>> description.
This is not what I had intended.
> The problem here seems to be:
> - It would be interesting to make "kvmclock=true" enough to enable the
> optimal behavior, instead of requiring users to use "kvm_clock2=true"
> explicitly
> - We need to allow older machine-types to be backwards compatible (not
> enabling the second bit by default), so we need a separate property
> to control the second bit.
>
> I think this is best modelled this way:
>
> - Having two separate properties: kvmclock and kvmclock2 (or kvm_clock2)
> - Older machine-types would have kvmclock2 default to false. Newer
> machine-types would kvmclock2 default to true.
> - kvmclock=false would disable both bits
>
> Then:
>
> - kvmclock=false would not set any bit (it would be surprising to have
> kvmclock=false but still have kvmclock enabled)
> - kvmclock=true would keep compatible behavior on older machine-types,
> (only the first bit set), but would get optimal behavior on newer
> machine-types (both bits set)
> - kvmclock=true,kvmclock2=true would set both bits
> - kvmclock=true,kvmclock2=false would set only the first bit
>
> It wouldn't be a direct mapping between properties and CPUID bits, but
> that's exactly the point. In this case, exposing individual CPUID bits
> directly is a too low-level interface.
>
This does look much better. For the sake of simple changes, this patch
will be changed so that -kvmclock (kvmclock=false) will continue to
clear both bits. I will look into the right way to fit this into the
newer cpu model.
>>
>>> + "kvm_asyncpf", "kvm_steal_time", "kvm_pv_eoi", NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + "kvm_clock_stable", NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> };
>>>
>>> static const char *svm_feature_name[] = {
>>> --
>>> 1.7.1
>>>
>>
>> --
>> Regards,
>> Igor
-Don Slutz
WARNING: multiple messages have this Message-ID (diff)
From: Don Slutz <Don@CloudSwitch.Com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: peter.maydell@linaro.org, kvm@vger.kernel.org,
mtosatti@redhat.com, qemu-devel@nongnu.org, avi@redhat.com,
anthony@codemonkey.ws, Igor Mammedov <imammedo@redhat.com>,
afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v4 02/17] target-i386: Add missing kvm bits.
Date: Fri, 21 Sep 2012 09:17:19 -0400 [thread overview]
Message-ID: <505C68DF.3060801@CloudSwitch.Com> (raw)
In-Reply-To: <20120921123602.GZ3983@otherpad.lan.raisama.net>
On 09/21/12 08:36, Eduardo Habkost wrote:
> On Fri, Sep 21, 2012 at 10:39:52AM +0200, Igor Mammedov wrote:
>> On Thu, 20 Sep 2012 16:03:17 -0400
>> Don Slutz <Don@cloudswitch.com> wrote:
>>
>>> Fix duplicate name (kvmclock => kvm_clock2) also.
>>>
>>> Signed-off-by: Don Slutz <Don@CloudSwitch.com>
>>> ---
>>> target-i386/cpu.c | 12 ++++++++----
>>> 1 files changed, 8 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>> index 0313cf5..5f9866a 100644
>>> --- a/target-i386/cpu.c
>>> +++ b/target-i386/cpu.c
>>> @@ -87,10 +87,14 @@ static const char *ext3_feature_name[] = {
>>> };
>>>
>>> static const char *kvm_feature_name[] = {
>>> - "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvmclock", "kvm_asyncpf", NULL, "kvm_pv_eoi", NULL,
>>> - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>>> - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>>> - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>>> + "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvm_clock2",
>> before patch if "kvmclock" is specified it would set 0 and 3 bits,
>> after patch only bit 0 is set.
>> Is it correct/expected behavior? if yes, please add rationale into patch
>> description.
This is not what I had intended.
> The problem here seems to be:
> - It would be interesting to make "kvmclock=true" enough to enable the
> optimal behavior, instead of requiring users to use "kvm_clock2=true"
> explicitly
> - We need to allow older machine-types to be backwards compatible (not
> enabling the second bit by default), so we need a separate property
> to control the second bit.
>
> I think this is best modelled this way:
>
> - Having two separate properties: kvmclock and kvmclock2 (or kvm_clock2)
> - Older machine-types would have kvmclock2 default to false. Newer
> machine-types would kvmclock2 default to true.
> - kvmclock=false would disable both bits
>
> Then:
>
> - kvmclock=false would not set any bit (it would be surprising to have
> kvmclock=false but still have kvmclock enabled)
> - kvmclock=true would keep compatible behavior on older machine-types,
> (only the first bit set), but would get optimal behavior on newer
> machine-types (both bits set)
> - kvmclock=true,kvmclock2=true would set both bits
> - kvmclock=true,kvmclock2=false would set only the first bit
>
> It wouldn't be a direct mapping between properties and CPUID bits, but
> that's exactly the point. In this case, exposing individual CPUID bits
> directly is a too low-level interface.
>
This does look much better. For the sake of simple changes, this patch
will be changed so that -kvmclock (kvmclock=false) will continue to
clear both bits. I will look into the right way to fit this into the
newer cpu model.
>>
>>> + "kvm_asyncpf", "kvm_steal_time", "kvm_pv_eoi", NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + "kvm_clock_stable", NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> };
>>>
>>> static const char *svm_feature_name[] = {
>>> --
>>> 1.7.1
>>>
>>
>> --
>> Regards,
>> Igor
-Don Slutz
next prev parent reply other threads:[~2012-09-21 13:17 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-20 20:03 [PATCH v4 00/17] Allow changing of Hypervisor CPUIDs Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 01/17] target-i386: Allow tsc-frequency to be larger then 2.147G Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 02/17] target-i386: Add missing kvm bits Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-21 8:39 ` Igor Mammedov
2012-09-21 8:39 ` [Qemu-devel] " Igor Mammedov
2012-09-21 12:36 ` Eduardo Habkost
2012-09-21 12:36 ` [Qemu-devel] " Eduardo Habkost
2012-09-21 13:17 ` Don Slutz [this message]
2012-09-21 13:17 ` Don Slutz
2012-09-20 20:03 ` [PATCH v4 03/17] target-i386: Add Hypervisor level Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 04/17] target-i386: Add cpu object access routines for " Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 05/17] target-i386: Add x86_set_hyperv Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 06/17] target-i386: Use Hypervisor level in -machine pc,accel=kvm Don Slutz
2012-09-20 20:03 ` [Qemu-devel] [PATCH v4 06/17] target-i386: Use Hypervisor level in -machine pc, accel=kvm Don Slutz
2012-09-20 20:03 ` [PATCH v4 07/17] target-i386: Use Hypervisor level in -machine pc,accel=tcg Don Slutz
2012-09-20 20:03 ` [Qemu-devel] [PATCH v4 07/17] target-i386: Use Hypervisor level in -machine pc, accel=tcg Don Slutz
2012-09-20 20:03 ` [PATCH v4 08/17] target-i386: Add Hypervisor vendor Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 09/17] target-i386: Add cpu object access routines for " Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 10/17] target-i386: Use Hypervisor vendor in -machine pc,accel=kvm Don Slutz
2012-09-20 20:03 ` [Qemu-devel] [PATCH v4 10/17] target-i386: Use Hypervisor vendor in -machine pc, accel=kvm Don Slutz
2012-09-20 20:03 ` [PATCH v4 11/17] target-i386: Use Hypervisor vendor in -machine pc,accel=tcg Don Slutz
2012-09-20 20:03 ` [Qemu-devel] [PATCH v4 11/17] target-i386: Use Hypervisor vendor in -machine pc, accel=tcg Don Slutz
2012-09-20 20:03 ` [PATCH v4 12/17] target-i386: Add some known names to Hypervisor vendor Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 13/17] target-i386: Add optional Hypervisor leaf extra Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 14/17] target-i386: Add cpu object access routines for " Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 15/17] target-i386: Add setting of Hypervisor leaf extra for known vmare4 Don Slutz
2012-09-20 20:03 ` [Qemu-devel] " Don Slutz
2012-09-20 20:03 ` [PATCH v4 16/17] target-i386: Use Hypervisor leaf extra in -machine pc,accel=kvm Don Slutz
2012-09-20 20:03 ` [Qemu-devel] [PATCH v4 16/17] target-i386: Use Hypervisor leaf extra in -machine pc, accel=kvm Don Slutz
2012-09-20 20:03 ` [PATCH v4 17/17] target-i386: Use Hypervisor leaf extra in -machine pc,accel=tcg Don Slutz
2012-09-20 20:03 ` [Qemu-devel] [PATCH v4 17/17] target-i386: Use Hypervisor leaf extra in -machine pc, accel=tcg 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=505C68DF.3060801@CloudSwitch.Com \
--to=don@cloudswitch.com \
--cc=afaerber@suse.de \
--cc=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=peter.maydell@linaro.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.