On Fri, Oct 20, 2017 at 13:09:26 +0200, Marc Hartmayer wrote:
we recently encountered the problem that the 'host-model' [1]
has to be
related to the machine type of a domain. We have following problem:
Let's assume we've a z13 system with a QEMU 2.9 and we define a
domain using the default s390-virtio-ccw machine together with the
host-model CPU mode [1]. The definition will have the machine
expanded to s390-virtio-ccw-2.9 but retain the host-model CPU mode
in the domain definition. In a next step we upgrade to QEMU 2.10
(first version to recognize z14). Everything is still fine, even
though the machine runs in 2.9 compatibility mode. Finally we
upgrade to a z14. As a consequence it is not possible to start the
domain anymore as the machine type doesn't support our CPU host
model (which is expanded at start time of the domain).
For determining the actual host-model the QMP command
'query-cpu-model-expansion' is used. This is done once per QEMU binary
and the result of it is cached by libvirt. The problem with that is
that libvirt queries with the newest machine type of the QEMU binary
for the host CPU model.
No, libvirt probes QEMU with -machine none.
We could now either probe the host CPU model for each QEMU binary +
machine type combination and for this we've to start a new QEMU
process each time.
This is not really a viable solution.
Jirka