[libvirt] Upgrade-problems from qemu-0.14.1 + libvirt-0.8.4 to qemu-0.15.1 + libvirt-0.9.6: Why I think multifunction=on is a bad idea...

Eric Blake eblake at redhat.com
Tue Nov 15 21:33:20 UTC 2011


On 11/15/2011 02:19 PM, Philipp Hahn wrote:
> Hello,
> 
> this mail is something between a bug report and a warning to other users of 
> libvirt, before they also experience the problem I encountered today:
> 
> I just hat the painful experience of trying to install some newer versions of 
> qemu(-kvm) and libvirt on a system with many managedsave-states and many 
> snapshots. They are now all broken because
> 1. Newer qemu(-kvm) uses iPXE instead of etherboot, which have different ROM 
> file sizes, which aborts loading the old VM state. So be careful to not 
> delete your old PXE-ROM images.

Is there a way to select which ROM image qemu uses from the qemu command
line?  And should libvirt be exposing this in the domain XML?  I agree
that it is a bad idea to make any backwards-incompatible ABI changes,
and if changing out the PXE-ROM image renders a save file broken, then
it argues that libvirt should be exposing this detail in the XML and
allow for a backwards-compatible default.

> 2. libvirt defaults to add ',multifuntion=on' to the (in my case) rtl8139 
> network card and balloon-driver,

I thought that was a bug in 0.9.5, but fixed in the 0.9.6 release just
several days later.  That is, we already agreed that 0.9.5 exposed the
problem of blindly enabling multifunction as being an ABI breaker, and
that 0.9.6 fixed things so that you have to explicitly request
multifunction in the XML.  But now you're saying 0.9.6 was also faulty?
 How about 0.9.7?  Do you have a better formula for reproducing this?

> So even if the qemu people try to be backward compatible with their VMState 
> format, libvirt doesn't seem to handle backward compatibility taht good at 
> the moment.
> Perhaps it would help to not (only) store the XML domain configuration for 
> snapshots and managedsave-files, but the exact qemu-argv string to at least 
> get libvirt out of any backward incompatible changes when re-constructing the 
> qemu command line from the XML data.

That won't help.  The XML data should be properly translatable in an
ABI-compatible manner, regardless if qemu is upgraded in the meantime;
worse, you have to remember that qemu command lines change across
releases, so guaranteeing ABI stability may require using _different_
command lines in 0.15 than it did in 0.14; saving the argv you handed to
qemu 0.14 won't help you; but saving a complete XML description that can
map to either qemu 0.14 or qemu 0.15 will.  So if it is problem of an
incomplete XML mapping, then we'd like to fix it, and sooner rather than
later.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20111115/ec873a8b/attachment-0001.sig>


More information about the libvir-list mailing list