[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [Announce] Backport of igb driver to linux-2.6.18-xen



Hi,

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.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.