On 08.11.19 12:10, Peter Maydell wrote:
On Fri, 8 Nov 2019 at 11:08, David Hildenbrand <da...@redhat.com> wrote:
There was recently a discussion regarding CPU model versions. That concept
does not fit s390x where we have a lot of feature variability. I
proposed an alternative approach in [1], which might work for x86 as well
(but I am not sure if x86 still can or wants to switch to that), and
requires no real changes in upper layers.
[1] and patch #2 contains more information on the motivation for this.
E.g., specifying/expanding "z14-best" will result in the "best feature
set possible on this accelerator, hw and, firmware". While a "z13" does
not work under TCG and some z/VM versions, "z13-best" will work.
I think other architectures call this concept "max", not "best".
If we can manage some cross-architecture consistency that would
be helpful, but is s390x using 'max' already for something else?
We have the "max" model just like other architectures
s390 max Enables all features supported by the accelerator
in the current host
It is basically the "host" model under KVM, and the "qemu" model under
TCG (with minor differences for the latter).
This series introduces e.g.,
s390 z900-best IBM zSeries 900 GA1 with best features supported by
the accelerator in the current host
s390 z14-best IBM z14 GA1 with best features supported by the
accelerator in the current host
s390 z14ZR1-best IBM z14 Model ZR1 GA1 with best features supported
by the accelerator in the current host
s390 gen15a-best IBM z15 GA1 with best features supported by the
accelerator in the current host
s390 gen15b-best IBM 8562 GA1 with best features supported by the
accelerator in the current host
There is a small but important difference between "max"/"host" and
"best". Max really means "all features", including deprecated ones.
"best", however, can disable experimental or deprecated features. Or any
other features we don't want to be enabled when somebody selects a model
manually.
On s390x, the feature "csske" is deprecated. New HW still has it, but we
want new guests to run without this facility. Dropping it from "max"
would affect existing setups. We already changed the default model
(e.g., -cpu z13) to disable it with never QEMU machines.
E.g., nested virtualization features on some architectures could be a
feature set you want to disable, although contained in the "max" model.
(e.g., no migration support yet).
I am not completely against calling these "max" models instead of "best"
models, but I think this makes it clearer that there is indeed a difference.
Maybe, we even want a "-cpu best" that would not map to "-cpu
host"/"-cpu max", but to a cleaned up "-cpu host"/"-cpu max" (e.g.,
disable deprecated features). Long term, we might even want to change
the default when no "-cpu" is specified to "-cpu best" - which should
now be possible with the latest QEMU changes to query the default model
for a specific QEMU machine.
--
Thanks,
David / dhildenb