On 09/27/2011 05:13 AM, Daniel P. Berrange wrote:
When we originally enabled multifunction for all PCI devices, we did
so
in the belief that this was effectively a no-op for guest OSes. ie it
should not have changed guest OS behaviour at all, unless multiple devices
were actually inserted in the slot.
Evidentally this turns out to be incorrect. In other words we introduced
a guest ABI change. This is very bad, because our stated goal is to have
a stable guest ABI across libvirt& QEMU releases.
Thus IMHO we need to disable *all* setting of the 'multifunction=on'
parameter for all guests by default, to unbreak the ABI compatibility.
Then we should introduce a new parameter 'multifunction='on' in the
<address type=pci> element to allow it to be optionally enabled per
device.
A couple of questions:
1) Is it possible/useful to have function > 0 without multifunction=on
in the qemu commandline?
2) If the answer to (1) is "No", if the XML has function > 0 but no
multifunction=on, should we implicitly add multifunction=on, or should
we log an error?