[libvirt] s390: change default cpu model to host-model?

Daniel P. Berrangé berrange at redhat.com
Fri Nov 8 11:43:10 UTC 2019

On Mon, Nov 04, 2019 at 11:49:01AM +0100, David Hildenbrand wrote:
> On 02.11.19 11:32, Daniel P. Berrangé wrote:
> > On Fri, Nov 01, 2019 at 06:43:16PM +0100, Christian Borntraeger wrote:
> > > On the KVM forum I have discussed the default cpu model mode on s390.
> > > Right now if the xml does not specify anything, libvirt defaults to
> > > not specifying anything on the qemu command line (no -cpu statement)
> > > which is the equivalent of -cpu host for s390 which is equivalent to
> > > host-passthrough. While this enables all features it does not provide
> > > any migration safety by default.
> > > 
> > > So in fact we are kind of "broken" right now when it comes to safery.
> > > 
> > > So we discussed that it would make sense that an empty xml should actually
> > > be defaulted to host-model, which results in - as of today - the same guest
> > > features but in a migration safe way.
> > > 
> > > There is another change planned right now to actually make the cpu model
> > > present in an xml if none was specified. So we could actually do this change
> > > before, together  or after te other. Jiri and I think it probably makes most
> > > sense to have both changes at the same time (in terms of libvirt version).
> > > 
> > > Does anyone see an issue with changing the default model mode to "host-model"
> > > if the xml does not specify anything else?
> > 
> > Changing from "host-passthrough" to "host-model" is not a huge difference,
> > but it is none the less a guest ABI change. "host-passthrough" doesn't
> > provide migration safety in the face of differing hardware, it should still
> > be valid for people with homogeneous hardware. So changing the model will
> > potentially break some existing usage.
> I guess on s390x this is not the case ("-cpu host", no "-cpu", and passing
> the expanded "host" model will result in the same guest ABI, in contrast to
> x86 AFAIK). There is this special case, though, where we have old QEMUs
> without CPU model support. Not sure how to deal with that, then.

I'm still not sure I understand the s390 CPU ABI rules.

Current libvirt, no <cpu>, and thus no -cpu.

IIUC this is functionally identical to using "-cpu host" and/or
<cpu mode="host-passthrough"/>

If you are using "-cpu host" / <cpu mode="host-passthrough"> can you
live migrate to another host with identical physical CPUs + firmware ?

Assuming this is possible, then, can you live migrate a QEMU guest
booted with <cpu mode="host-passthrough">, to a QEMU guest booted
with <cpu mode="host-model">  ?

On x86 the latter is not possible. Is s390 different ?

|: 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 :|

More information about the libvir-list mailing list