Hi, I'm pretty sure I need to build a newer version of the i40e drivers (2.17.4) from source so that VFs are properly supported on Intel X710 cards. It looks like the latest version in XCP is 2.9.21 and VF support via sysfs was only fixed in 2.14.13. Right now, the 2.9.21 driver tries to initialize support for 64 VFs, when the actual limit is 32, causing the entire subsystem to panic and blocking the creation of any VFs, and no matter what modprobe
setting I change, it always tries to initialze 64 VFs. (I assume because the original version of this controller, the XL710, had support for 64 VFs per port)
No one would really notice this, unless they tried to connect a VM via SR-IOV VFs rather than a traditional VIF.
Three quick questions:
- Is there a guide to build XCP-ng drivers from source?
- I assume https://github.com/xcp-ng/xcp-ng-build-env is still the official build environment?
- I assume I need to roll the driver into an RPM, them move it back to my system for install?
- Is there a reference repo for the i40e driver that I can fork and update with the new 2.17.4 driver?
Some of this is from this old forum post: https://xcp-ng.org/forum/topic/212/build-network-drivers-from-sources/2
Proper use of the X710's VF functionality via SR-IOV should offload all the bridge work to card, instead of doing it via VIFs and OVS (I don't know how to max out the 32 VFs per port limit but that's a good problem to have).
And yes, I know that the VIFs technically have a higher bandwidth than the X710's 10G ports, but why waste CPU cycles when you don't have to? Plus aren't you curious to see if an SR-IOV VF bridge is faster than a VIF OVS bridge?