On Mon, Jun 22, 2015 at 05:58:46PM +0200, Jiri Denemark wrote: > However, knowing all the details about a guest CPU used by QEMU for a > given CPU model on a specific machine type is not enough to enforce ABI > stability. Without using -cpu Model,enforce (or an equivalent of > checking filtered-features via QMP) QEMU may silently filter features it > cannot provide on the current host. Even in case of TCG some features > are not supported, e.g., -cpu SandyBridge will always fail to start in > enforcing mode. Even doing something ugly and using the enforce mode > only for new machine types is not going to work because after a QEMU > upgrade new libvirt would be incompatible with older libvirt. I'm not sure I follow the scenario you're concerned with. Lets, say we have guest XML <cpu><model>SandyBridge</model></cpu> and so we're using the new "custom" -cpu arg that QEMU supports. Are you saying that we won't be able to live migrate from the "-cpu custom" with new QEMU, to "-cpu SandyBridge" with old QEMU, even if the CPU seen by the guest is identical ? > That said, I don't really see a way to do all this automatically without > an explicit switch in a domain XML. Be it a new CPU mode or an attribute > which would request enforcing ABI stability. I don't like the idea of adding more to the mode=custom|host-model|passthroug options, but perhaps we could signify this in a differnet way. For example, what we're really doing here is switching between use of libvirt and use of QEMU for CPU emulation. In similar cases, for other device types we use the <driver> element to identify the backend impl. So perhaps we could do a <cpu> ... <driver name="libvirt|qemu"/> </cpu> To distinguish between use of libvirt and use of QEMU for the CPU model/feature handling ? Ideally if not specified, then we'd magically choose the "best" approach given the QEMU we have available Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list