qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [libvirt] Question about the host-model CPU mode


From: Jiri Denemark
Subject: Re: [Qemu-devel] [libvirt] Question about the host-model CPU mode
Date: Fri, 20 Oct 2017 14:50:56 +0200
User-agent: Mutt/1.9.1 (2017-09-22)

On Fri, Oct 20, 2017 at 13:37:42 +0200, David Hildenbrand wrote:
> On 20.10.2017 13:09, 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).
> 
> Yes, the host model may vary depending on QEMU version and to some
> degree also on compatibility machines (although I always try to push
> people to not introduce any new such stuff).
> 
> Quoting for the libvirt documentation: https://libvirt.org/formatdomain.html
> 
> "host-model
>     The host-model mode is essentially a shortcut to copying host CPU
> definition from capabilities XML into domain XML. Since the CPU
> definition is copied just before starting a domain, exactly the same XML
> can be used on different hosts while still providing the best guest CPU
> each host supports."
> 
> You're telling me that that copying does not happen, which seems to be
> the problematic part about this in my opinion.
> 
> So I am not sure if probing anything else (as you noted below) is the
> correct thing to do. Copy it and you have a migration_safe and even
> static version of the _current_ host CPU.

The thing is libvirt calls query-cpu-model-expansion to check what the
host CPU is. This 'host-model' CPU is replaced with the probed CPU model
when a domain starts. The problem described by Marc is that the probed
CPU model cannot be used universally with all machine types. So starting
a domain on such host with machine type s390-virtio-ccw-2.10 works, but
a domain with machine type s390-virtio-ccw-2.9 fails to start with the
same probed CPU model.

Jirka



reply via email to

[Prev in Thread] Current Thread [Next in Thread]