qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <dahi@linux.vnet.ibm.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org, jdenemar@redhat.com, imammedo@redhat.com,
	cornelia.huck@de.ibm.com, borntraeger@de.ibm.com,
	fiuczy@linux.vnet.ibm.com, mimu@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [Patch v1 24/29] qmp: add QMP interface "query-cpu-model-expansion"
Date: Wed, 3 Aug 2016 09:02:19 +0200	[thread overview]
Message-ID: <20160803090219.6b58b505@thinkpad-w530> (raw)
In-Reply-To: <20160802153838.GJ3337@thinpad.lan.raisama.net>

> On Tue, Aug 02, 2016 at 05:04:05PM +0200, David Hildenbrand wrote:
> [...]
> > >   
> > > > +#          model can be used by tooling without having to specify a
> > > > +#          compatibility machine - e.g. when displaying the "host" model.
> > > > +#          All static CPU models are migration-safe.    
> > > 
> > > This is cool. Unfortunately we are not going to support it in x86
> > > very soon because we don't have any static CPU models.  
> > 
> > Well, it's all about finding a minimum set of features that one can work with.
> > I assume e.g. a Phenom also always has a minimum set of features?  
> 
> We could have a very minimal CPU model that is static in x86,
> yes. We just need to find out "how minimal" we can really make
> it.

Right. Basically, on s390x we have two types of features
1) hypervisor managed
2) non-hypervisor managed

Meaning the hypervisor can blindly forward 2), but needs special implementation
for 1). This implies that old releases of an hypervisor will only show 2) but
not 1).

We can therefore move all 2) that are made public (~99%) into the minimum model
+ some very old 1) that are always expected to be around nowadays.

Actually going below the minimum model is possible on s390x, could just happen
that e.g. Linux will not boot anymore.

But the question is, if static CPU models for x86 are really needed. I assume
you only make veeeery little changes to these models, so showing them
without a compatibility machine should almost always give the same result. And
that's the main difference to s390x. The other one is obviously that we have
much more feature variance, depending under which hypervisor (LPAR/KVM/z/VM)
and version we're running.

> 
> >   
> > >   
> > > > +#
> > > > +# @full: Expand all properties. The produced model is not guaranteed to be
> > > > +#        migration-safe, but allows tooling to get an insight and work with
> > > > +#        model details.    
> > > 
> > > I wonder if we really need to document it broadly as "not
> > > guaranteed to be migration-safe". The returned data will be
> > > migration-safe (but not static) if the CPU model being expanded
> > > is migration-safe, won't it?  
> > 
> > Actually I don't think so.
> > Imagine expanding host: featA=true, featB=false  
> 
> In this case, "host" is not migration-safe, so the results will
> not be migration-safe.

Yes, so I'll keep this remark for now.

> > > > +#
> > > > +# s390x supports expanding of all CPU models with all expansion types. Other
> > > > +# architectures are not supported yet.    
> > > 
> > > I think this paragraph is likely to get obsolete very soon (as
> > > people may forget to update it when implementing the new
> > > interface on other architectures). Also, the paragraph is not
> > > true until patch 27/29 is applied.
> > > 
> > > Maybe write it as "Some architectures may not support all
> > > expansion types".  
> > 
> > Agreed. And most likely x86 won't support expanding all CPU models I assume?  
> 
> It will probably support expanding all CPU models in the same way
> (when using "full").
> 

Cool! Thanks!

David

  reply	other threads:[~2016-08-03  7:02 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-02 11:58 [Qemu-devel] [Patch v1 00/29] s390x CPU models: exposing features David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 01/29] qmp: details about CPU definitions in query-cpu-definitions David Hildenbrand
2016-08-02 13:04   ` Eduardo Habkost
2016-08-02 13:23     ` David Hildenbrand
2016-08-02 14:00       ` Eduardo Habkost
2016-08-02 14:27         ` David Hildenbrand
2016-08-02 14:49           ` Eduardo Habkost
2016-08-02 14:53             ` David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 02/29] s390x/cpumodel: "host" and "qemu" as CPU subclasses David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 03/29] s390x/cpumodel: expose CPU class properties David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 04/29] s390x/cpumodel: introduce CPU features David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 05/29] s390x/cpumodel: generate CPU feature lists for CPU models David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 06/29] s390x/cpumodel: generate CPU feature group lists David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 07/29] s390x/cpumodel: introduce CPU feature group definitions David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 08/29] s390x/cpumodel: register defined CPU models as subclasses David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 09/29] s390x/cpumodel: store the CPU model in the CPU instance David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 10/29] s390x/cpumodel: expose features and feature groups as properties David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 11/29] s390x/cpumodel: let the CPU model handle feature checks David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 12/29] s390x/cpumodel: check and apply the CPU model David Hildenbrand
2016-08-02 11:58 ` [Qemu-devel] [Patch v1 13/29] s390x/sclp: factor out preparation of cpu entries David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 14/29] s390x/sclp: introduce sclp feature blocks David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 15/29] s390x/sclp: indicate sclp features David Hildenbrand
2016-08-02 12:31   ` Thomas Huth
2016-08-02 13:00     ` David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 16/29] s390x/sclp: propagate the ibc val(lowest and unblocked ibc) David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 17/29] s390x/sclp: propagate the mha via sclp David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 18/29] s390x/sclp: propagate hmfai David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 19/29] linux-headers: update against kvm/next David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 20/29] s390x/kvm: allow runtime-instrumentation for "none" machine David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 21/29] s390x/kvm: implement CPU model support David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 22/29] s390x/kvm: disable host model for existing compat machines David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 23/29] s390x/kvm: let the CPU model control CMM(A) David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 24/29] qmp: add QMP interface "query-cpu-model-expansion" David Hildenbrand
2016-08-02 13:45   ` Eduardo Habkost
2016-08-02 15:04     ` David Hildenbrand
2016-08-02 15:38       ` Eduardo Habkost
2016-08-03  7:02         ` David Hildenbrand [this message]
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 25/29] qmp: add QMP interface "query-cpu-model-comparison" David Hildenbrand
2016-08-02 14:45   ` Eduardo Habkost
2016-08-02 15:15     ` David Hildenbrand
2016-08-02 15:47       ` Eduardo Habkost
2016-08-03  7:09         ` David Hildenbrand
2016-08-03 17:39           ` Eduardo Habkost
2016-08-04  7:34   ` David Hildenbrand
2016-08-04 14:36     ` Eduardo Habkost
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 26/29] qmp: add QMP interface "query-cpu-model-baseline" David Hildenbrand
2016-08-04  7:32   ` David Hildenbrand
2016-08-04 14:36     ` Eduardo Habkost
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 27/29] s390x/cpumodel: implement QMP interface "query-cpu-model-expansion" David Hildenbrand
2016-08-02 14:22   ` Eduardo Habkost
2016-08-02 14:28     ` David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 28/29] s390x/cpumodel: implement QMP interface "query-cpu-model-comparison" David Hildenbrand
2016-08-02 11:59 ` [Qemu-devel] [Patch v1 29/29] s390x/cpumodel: implement QMP interface "query-cpu-model-baseline" David Hildenbrand
2016-08-02 17:28 ` [Qemu-devel] [Patch v1 00/29] s390x CPU models: exposing features Eduardo Habkost
2016-08-02 18:12   ` David Hildenbrand
2016-08-02 20:14     ` Eduardo Habkost

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=20160803090219.6b58b505@thinkpad-w530 \
    --to=dahi@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=ehabkost@redhat.com \
    --cc=fiuczy@linux.vnet.ibm.com \
    --cc=imammedo@redhat.com \
    --cc=jdenemar@redhat.com \
    --cc=mimu@linux.vnet.ibm.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).