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

Laine Stump laine at laine.org
Tue Sep 27 05:19:20 UTC 2011

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 at redhat.com>  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:


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!

More information about the libvir-list mailing list