All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [PATCH] target-i386: add feature flags for CPUID[EAX=0xd,ECX=1]
Date: Wed, 26 Nov 2014 13:46:49 +0100	[thread overview]
Message-ID: <5475CBB9.9070104@redhat.com> (raw)
In-Reply-To: <20141126114036.GQ3137@thinpad.lan.raisama.net>



On 26/11/2014 12:40, Eduardo Habkost wrote:
> On Wed, Nov 26, 2014 at 10:20:12AM +0100, Paolo Bonzini wrote:
>>
>>
>> On 25/11/2014 21:02, Paolo Bonzini wrote:
>>>>> +static const char *cpuid_xsave_feature_name[] = {
>>>>> +    "xsaveopt", "xsavec", "xgetbv1", "xsaves",
>>>>
>>>> None of the above features introduce any new state that might need to be
>>>> migrated, or will require other changes in QEMU to work, right?
>>>>
>>>> It looks like they don't introduce any extra state, but if they do, they
>>>> need to be added to unmigratable_flags until migration support is
>>>> implemented.
>>>>
>>>> If they require other QEMU changes, it would be nice if KVM reported
>>>> them using KVM_CHECK_EXTENSION instead of GET_SUPPORTED_CPUID, so it
>>>> wouldn't break "-cpu host".
>>>
>>> No, they don't.
>>
>> Actually, xsaves does but I don't think KVM_CHECK_EXTENSION is right.
>> It's just another MSR, and we haven't used KVM_CHECK_EXTENSION for new
>> MSRs and new XSAVE areas (last example: avx512).
> 
> If the changes needed are only to support migration (this is the case if
> it's just another MSR handled by KVM, or additional XSAVE areas),
> GET_SUPPORTED_CPUID is still reasonable, because features that are
> unknown to QEMU are always considered unmigratable until we add the
> feature name to the feature_name arrays. (That's why we need to know if
> the feature introduces additional state when adding the feature names to
> the array.)
> 
> If other changes are required to make the feature work even if no
> migration is required, then adding them to GET_SUPPORTED_CPUID would
> break "-cpu host" on older QEMUs. I don't think that's the case here,
> but I wanted to confirm.

KVM may need more changes (I don't know, the details of the feature are
not public yet), but a new userspace API is very unlikely based on Intel
documentation.

> (Should we add those observations to Documentation/virtual/kvm/api.txt?)
> 
>>
>> Since no hardware really exists for it, and KVM does not support it
>> anyway, I think it's simplest to leave xsaves out for now.  Is this right?
> 
> If unsure, it won't hurt to add the feature to unmigratable_features by
> now. Making QEMU aware of the feature name is still useful.

Ok, thanks.

Paolo

WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH] target-i386: add feature flags for CPUID[EAX=0xd, ECX=1]
Date: Wed, 26 Nov 2014 13:46:49 +0100	[thread overview]
Message-ID: <5475CBB9.9070104@redhat.com> (raw)
In-Reply-To: <20141126114036.GQ3137@thinpad.lan.raisama.net>



On 26/11/2014 12:40, Eduardo Habkost wrote:
> On Wed, Nov 26, 2014 at 10:20:12AM +0100, Paolo Bonzini wrote:
>>
>>
>> On 25/11/2014 21:02, Paolo Bonzini wrote:
>>>>> +static const char *cpuid_xsave_feature_name[] = {
>>>>> +    "xsaveopt", "xsavec", "xgetbv1", "xsaves",
>>>>
>>>> None of the above features introduce any new state that might need to be
>>>> migrated, or will require other changes in QEMU to work, right?
>>>>
>>>> It looks like they don't introduce any extra state, but if they do, they
>>>> need to be added to unmigratable_flags until migration support is
>>>> implemented.
>>>>
>>>> If they require other QEMU changes, it would be nice if KVM reported
>>>> them using KVM_CHECK_EXTENSION instead of GET_SUPPORTED_CPUID, so it
>>>> wouldn't break "-cpu host".
>>>
>>> No, they don't.
>>
>> Actually, xsaves does but I don't think KVM_CHECK_EXTENSION is right.
>> It's just another MSR, and we haven't used KVM_CHECK_EXTENSION for new
>> MSRs and new XSAVE areas (last example: avx512).
> 
> If the changes needed are only to support migration (this is the case if
> it's just another MSR handled by KVM, or additional XSAVE areas),
> GET_SUPPORTED_CPUID is still reasonable, because features that are
> unknown to QEMU are always considered unmigratable until we add the
> feature name to the feature_name arrays. (That's why we need to know if
> the feature introduces additional state when adding the feature names to
> the array.)
> 
> If other changes are required to make the feature work even if no
> migration is required, then adding them to GET_SUPPORTED_CPUID would
> break "-cpu host" on older QEMUs. I don't think that's the case here,
> but I wanted to confirm.

KVM may need more changes (I don't know, the details of the feature are
not public yet), but a new userspace API is very unlikely based on Intel
documentation.

> (Should we add those observations to Documentation/virtual/kvm/api.txt?)
> 
>>
>> Since no hardware really exists for it, and KVM does not support it
>> anyway, I think it's simplest to leave xsaves out for now.  Is this right?
> 
> If unsure, it won't hurt to add the feature to unmigratable_features by
> now. Making QEMU aware of the feature name is still useful.

Ok, thanks.

Paolo

  reply	other threads:[~2014-11-26 12:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-25 17:35 [PATCH] target-i386: add feature flags for CPUID[EAX=0xd,ECX=1] Paolo Bonzini
2014-11-25 17:35 ` [Qemu-devel] [PATCH] target-i386: add feature flags for CPUID[EAX=0xd, ECX=1] Paolo Bonzini
2014-11-25 18:45 ` [PATCH] target-i386: add feature flags for CPUID[EAX=0xd,ECX=1] Eduardo Habkost
2014-11-25 18:45   ` [Qemu-devel] [PATCH] target-i386: add feature flags for CPUID[EAX=0xd, ECX=1] Eduardo Habkost
2014-11-25 20:02   ` [PATCH] target-i386: add feature flags for CPUID[EAX=0xd,ECX=1] Paolo Bonzini
2014-11-25 20:02     ` [Qemu-devel] [PATCH] target-i386: add feature flags for CPUID[EAX=0xd, ECX=1] Paolo Bonzini
2014-11-26  9:20     ` [PATCH] target-i386: add feature flags for CPUID[EAX=0xd,ECX=1] Paolo Bonzini
2014-11-26  9:20       ` [Qemu-devel] [PATCH] target-i386: add feature flags for CPUID[EAX=0xd, ECX=1] Paolo Bonzini
2014-11-26 11:40       ` [PATCH] target-i386: add feature flags for CPUID[EAX=0xd,ECX=1] Eduardo Habkost
2014-11-26 11:40         ` [Qemu-devel] [PATCH] target-i386: add feature flags for CPUID[EAX=0xd, ECX=1] Eduardo Habkost
2014-11-26 12:46         ` Paolo Bonzini [this message]
2014-11-26 12:46           ` Paolo Bonzini

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=5475CBB9.9070104@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=ehabkost@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.