Re: [PATCH] qemu: qxl devices don't support multifunction yet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/27/2011 05:13 AM, Daniel P. Berrange wrote:
On Tue, Sep 27, 2011 at 01:19:20AM -0400, Laine Stump wrote:
On 09/19/2011 01:32 PM, Daniel P. Berrange wrote:
On Mon, Sep 19, 2011 at 07:16:22PM +0200, Marc-André Lureau wrote:
Hi hi

On Fri, Sep 16, 2011 at 1:38 PM, Marc-André Lureau<mlureau@xxxxxxxxxx>   wrote:
How do we allow other devices to share the slot? It seems to me that
qemuDomainPCIAddressSetNextAddr() only allocate whole slot, while
making sure there is no conflicts on the same slot.
So, if the user wants to use multi function pci device, he should
specify the
pci address.
So adding a check such as:

if (!multiFunc&&   info->addr.pci.function != 0)
   return error("The %s device doesn't support multifunction address")

Wen, does that sound reasonable to you?

Daniel, did you had time to verify that PCI allocation is per-slot?

(It would be nice to get this "workaround" for the next release)
IMHO this kind of hack doesn't belong in libvirt. It is fine for distro
vendors to consider as a one off quick-hack for their packages of libvirt,
if they don't have time to fix the real QXL bug, but not for libvirt
upstream releases. QXL/QEMU should really be fixed since that's where the
problem appears to lie.
As it stands, Fedora 16 (currently using unpatched libvirt-0.9.6)
will be going into beta with QXL video broken for Windows guests, so
we need some kind of Fedora-only patch very soon (see the schedule
here: https://fedoraproject.org/wiki/Releases/16/Schedule -
fortunately just delayed another week)

The original patch in this thread:

   https://www.redhat.com/archives/libvir-list/2011-September/msg00534.html

of course doesn't include the above mentioned additional code, and
there isn't a followup patch. It would be very good to push a patch
to the F16 git for this so it would hopefully get into the beta, but
want to make sure what I push is the "right" thing, so a "final"
patch (and some testing by people with F16 hosts) would be very
helpful!
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.

Of course this has been in since 0.9.3, meaning there are official releases with broken ABI compatibility :-(. Still, the sooner it's fixed the better.

Then we should introduce a new parameter 'multifunction='on' in the
<address type=pci>  element to allow it to be optionally enabled per
device.

Will it be acceptable to put that in a patch on top of 0.9.6 for Fedora 16? (I think the answer is "yes", since it's only an XML change, but just want to make sure).

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]