Backport of igb driver to linux-2.6.18-xen

From xen-devel (Simon Horman):
I am happy to announce a refreshed backport of the IGB driver to linux-2.6.18-xen.
Motivation
———-
To allow the creation of virtual functions (VF) on the 82576 that can be passed through to domUs. This back-port is successful in that regard.
Methodology
———–
The current igb driver in linux-2.6.18-xen seems to be a back-port of a driver from RHEL5 that predates anything present in Linus’s kernel tree.
This makes back-porting of changes from Linus’s tree difficult. In particular, the original commit to Linus’s tree includes multi-queue support, a non-trivial feature, whereas the code currently in linux-2.6.18-xen does not.
With this in mind the method used was to back-port the original commit made to Linus’s tree and then back-port subsequent commits to Linus’s tree.
Although somewhat verbose this method appears to have worked quite well.
Some patches were not back-ported, in particular GRO. This is because the back-port seemed to be quite difficult for little gain. I’m happy to re-consider any non-back-ported patches if there is interest.
In total there are 191 patches on top of linux-2.6.18-xen
“xen/x86: make do_settimeofday() return -EPERM when clock can’t be changed”
(930:506133327116). Apart from one patch written by myself they all correspond to patches in Linus’s kernel tree. Where the patches have been modified I have noted this in the changelog and added my own Signed-off-by line. The majority of patches are unmodified.
Availability
————
Due to the large number of patches I am providing this backport as an hg tree, http://hg.vergenet.net/xen/linux-2.6.18-xen-igb
At this time it should be possible to pull this tree into linux-2.6.18-xen or to use it independently.
I am happy to post the patches to xen-devel if that is of value.
However my experience in the past has shown that posting more than a handful of patches results in a re-send-fest due to mangling issues.
There is also an issue that the first patch “igb: port to driver originally committed to Linus’s tree” (931:6b25a2daf6bc) is rather large at 192Kbytes.
Known Limitations
—————–
* This back-port does not include the VF driver (igbvf). This means that VFs created using the igb driver can’t be used by dom0. They can, however, be passed through to domUs.
* removing the igb module while a VF is passed-through results in a hypervisor panic. This is after several pciback messages which explain that you have done something that you sholdn’t.
pciback: ****** removing device 0000:02:10.1 while still in-use! ******
pciback: ****** driver domain may still access this device’s i/o resources!
pciback: ****** shutdown driver domain before binding device
pciback: ****** to other drivers or domains
(XEN) [VT-D]iommu.c:1271:d0 domain_context_unmap:PCIe: bdf = 2:10.1
(XEN) Xen BUG at msi.c:776
* The tree does not compile with PCI_IOV enabled between changesets
– “igb: this patch addes the sr-iov enablement option via num_vfs parameter”
(1084:500923c2764d)
– “igb: remove sysfs entry that was used to set the number of vfs”
(1104:065c8123ea19)
This is because the first patch makes use of netdev->dev which does not exist. However the need for this is removed by the second patch.

Read more

Welcome Honda to the Xen Project Board
12/09/2024

We're excited to announce our newest Advisory Board Member Honda, to Xen Project. Since its foundation, Honda has been committed to "creating a society that is useful to people" by utilizing its technologies and ideas. Honda also focuses on environmental responsiveness and traffic safety, and continue

Say hello to our new website
12/05/2024

Hello Xen Community, You may have noticed something different... We've refreshed our existing website! Why did we do this? Well, all these new changes are part of an ongoing effort to increase our visibility and make it easier to find information on pages. We know how important it

Xen Project Announces Performance and Security Advancements with Release of 4.19
08/05/2024

New release marks significant enhancements in performance, security, and versatility across various architectures.  SAN FRANCISCO – July 31st, 2024 – The Xen Project, an open source project under the Linux Foundation, is proud to announce the release of Xen Project 4.19. This release marks a significant milestone in enhancing performance, security,

Upcoming Closure of Xen Project Colo Facility
07/10/2024

Dear Xen Community, We regret to inform you that the Xen Project is currently experiencing unexpected changes due to the sudden shutdown of our colocated (colo) data center facility by Synoptek. This incident is beyond our control and will impact the continuity of OSSTest (the gating Xen Project CI loop)