On Thu, Nov 21, 2024 at 07:03:13PM +0100, Jiri Denemark wrote:
On Thu, Nov 21, 2024 at 16:14:58 +0100, Jiri Denemark wrote:
> On Wed, Nov 20, 2024 at 14:41:29 +0000, Daniel P. Berrangé wrote:
> > $ virsh domcapabilities --xpath '//model' | grep Skylake-Client
> > <model usable="no" vendor="Intel"
canonical="Skylake-Client-v1">Skylake-Client</model>
> > <model usable="no" vendor="Intel"
canonical="Skylake-Client-v2">Skylake-Client-IBRS</model>
> > <model usable="no" vendor="Intel"
canonical="Skylake-Client-v3">Skylake-Client-noTSX-IBRS</model>
> > <model usable="no"
vendor="Intel">Skylake-Client-v4</model>
I'm thinking about the benefit of knowing what CPU model is an alias and
which one is canonical for apps. I guess they only need to know what
models are supported on all hosts to select one that can be migrated
everywhere. Wouldn't it be better to have the following instead?
<model usable='yes' vendor='Intel' base='Skylake-Client'
version='3'>Skylake-Client-noTSX-IBRS</model>
<model usable='yes' vendor='Intel' base='Skylake-Client'
version='3'>Skylake-Client-v3</model>
Apps could then easily select the latest version of a specific model or
similar stuff without having to parse model names. If they really wanted
they could even deduce Skylake-Client-noTSX-IBRS and Skylake-Client-v3
are in fact the same CPU model.
The problem with this is that at the QAPI level, QEMU does not express
any concept of "sequence of versioned models", nor a "base" model.
The "-vNNN" suffixes are just a naming convention it happens to use
currently. Humans can think it is a version sequence, but QEMU's not
defined that as an API promise.
The other thing to be wary of is that "bigger" versions does not
imply "better", or "newer", or still runnable. A version simply
reflects the order in which they were added to QEMU for whatever
reason that was created.
I'd probably consider them "variants" rather than "versions" and
not
suggest a particular ordering.
From an app POV, the important thing is only that you can identify
a desired variant that is compatible with all the hosts you need
to use.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|