Created attachment 500385 [details]
Output from "lspci" while SR-IOV is enabled
Description of problem:
I followed the instructions at http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/sect-Para-virtualized_Windows_Drivers_Guide-How_SR_IOV_Libvirt_Works.html and added two virtual-function PCIe network ports to a virtual server, the virtual server will not start. The following message is seen in syslog:
libvirtd: 11:20:08.885: 4886: error : pciDeviceIsAssignable:1487 : this function is not supported by the connection driver: Device 0000:07:10.0 is behind a switch lacking ACS and cannot be assigned
With such new hardware, shouldn't SR-IOV be working?
Steps to Reproduce:
1. Grab a new Dell Poweredge R710 server with an Intel 82576 Gigabit ET Quad Port Server Adapter and apply all firmware updates
2. Make sure that SR-IOV is enabled in bios.
3. Add to virtual-function PCI devices to a virtual host, using virt-manager.
Virtual server doesn't start.
Virtual server starts.
Created attachment 500386 [details]
Output from "lspci -vvv"
Regardless of whether the reporter's hardware supports ACS, I think the error is wrong:
this function is not supported by the connection driver
seems incorrect; it's supported by the connection driver, but not the hardware.
It sounds like the Dell R710 simply doesn't support PCIe Access Control Services (ACS):
So I guess this bug can be closed.
By the way: The R710 uses the Intel 5520 chipset. A bit of googling reveals a hard to decode note about (lack of?) ACS support: http://www.intel.com/assets/pdf/specupdate/321329.pdf
It would be great if Red Hat published a list of server hardware combinations which is verified to support SR-IOV including ACS.
Hi Troels, thanks for the additional info. I'm going to leave the BZ open to address my comment 3.
patch posted to upstream, http://www.redhat.com/archives/libvir-list/2011-May/msg01867.html
patch got pushed in upstream, move to POST.
For the record this is upstream commit a74575e374e850999d624e192a9fbb30829085a1
This should be fixed by the libvirt-0.9.2-1.el6 rebase
Unfortunately, it may take quite a while before I can get a service window where I can test the updated libvirt -- "quite a while" meaning up to ½ a year :-(
We have a 4 port 82576 with non-ACS switch which is used to verify the bug 526713, fail to start the guest(assign the PF to the guest) with the same error in the bug description "this function is not supported by the connection driver".
But this card does not supported VF creation(the reporter used the VF in step 3 in comment 0), need to confirm with you whether we can use this card on this bug verification ?
If not, we'll try to get a new device with non-ACS switch and support VF asap, thanks.
dyuan, you have to talk to the bug assignee about this.
Could you attach the debug log, I don't think it relates with whether it's PF and VF, testing both of them shouldn't see the error (this function is not supported by driver) again. If you can attach the debug log, it will be clear which function throws the error, and so I can see if my patch missed fix on some function or if the patch is not applied.
Created attachment 511443 [details]
output from "lspci -vvv" : verify machine
#virsh start demo
error: Failed to start domain demo
error: internal error Device 0000:05:00.0 is behind a switch lacking ACS and can not be assigned
#tail -f /var/log/libvirt/libvirtd.log
20:55:48.466: 15475: error : pciDeviceIsAssignable:1649 : internal error Device 0000:05:00.0 is behind a switch lacking ACS and cannot be assigned
Set it as VERIFIED per comment18
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.