Build newer Intel i40e drivers from source
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
modprobesetting 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?
That's a question for @stormi but I can already answer that:
- Yes it's possible Sam will give you the right hints
- We also offer this for customer with pro support (I know it's likely not what you need on your side, but just saying for people lurking!)
Your starting point will be https://xcp-ng.org/docs/develprocess.html#local-rpm-build