[libvirt] PATCH: pci-subsystem: ixgbe: SR-IOV: kernel way to order driver's virtfn -entries is odd causing libvirt failures.
Laine Stump
laine at laine.org
Tue Nov 5 10:49:46 UTC 2013
On 10/29/2013 06:01 PM, Laine Stump wrote:
> On Thu, Oct 24, 2013 at 09:52:31AM +0300, Niilona wrote:
>> There is a behavior effecting virtfn -entries in sysfs, when amount of
>> them increases over 10.
>> Run VM's through LIBVIRT -> QEMU/KVM, this causes :
>> - MAC address setting by LIBVIRT disordered ie. setting targeted to wrong VF.
>> - VLAN setting by LIBVIRT overall failed
> To fix this we need to modify virPCIGetVirtualFunctions to gather all
> virtfn%d entries in the PF's directory and sort them numerically (right
> now we just grab them in whatever order readdir() provides and put them
> in the list in that order). This will automatically fix
> virPCIGetVirtualFunctionIndex() and coincidentally make the ordering in
> nodedev-dumpxml "proper".
>
> Of course even this will only work as long as lists of virtual functions
> are guaranteed to never be "sparse" (e.g. there can't be a virtfn22
> unless there is also a virtfn21). My guess is that this is always true,
> but we should check for that in the new function and log an appropriate
> error in the case that we encounter a sparse list.
I've implemented such a patch, and have posted it to libvir-list:
https://www.redhat.com/archives/libvir-list/2013-November/msg00125.html
Please try it out and post feedback to that thread.
Thanks for persevering enough to make me see the problem! :-)
More information about the libvir-list
mailing list