On 01/19/2011 11:19 AM, Daniel P. Berrange wrote:
In our past experiance though, *not* specifying attributes like
these has also been pretty bad from a forward compatibility
perspective too. We're kind of damned either way, so on balance
we decided we'd specify every attribute in qdev that's related
to unique identification of devices& their inter-relationships.
By strictly locking down the topology we were defining, we ought
to have a more stable ABI in face of future changes. I accept
this might not always work out, so we may have to adjust things
over time still. Predicting the future is hard :-)
There are two distinct things here:
1) creating exactly the same virtual machine (like for migration) given
a newer version of QEMU
2) creating a reasonably similar virtual machine given a newer version
of QEMU
For (1), you cannot use -M pc. You should use things like bus=X,addr=Y
much better is for QEMU to dump a device file and to just reuse that
instead of guessing what you need.
For (2), you cannot use bus=X,addr=Y because it makes assumptions about
the PCI topology which may change in newer -M pc's.
I think libvirt needs to treat this two scenarios differently to support
forwards compatibility.
Regards,
Anthony Liguori
Daniel