Page MenuHomeFreeBSD

Convert igb(4), em(4) and lem(4) to iflib

Authored by sbruno on Oct 20 2016, 4:22 PM.
Referenced Files
Unknown Object (File)
Apr 15 2017, 10:22 PM
Unknown Object (File)
Apr 8 2017, 10:26 PM
Unknown Object (File)
Apr 7 2017, 3:50 AM
Unknown Object (File)
Apr 5 2017, 7:51 PM
Unknown Object (File)
Mar 6 2017, 10:12 PM
Unknown Object (File)
Feb 4 2017, 7:49 AM
Unknown Object (File)
Jan 26 2017, 5:17 AM
Unknown Object (File)
Jan 15 2017, 5:23 AM



Unify all Intel gigabit drivers into a single iflib implementation.

Diff Detail

rS FreeBSD src repository - subversion
Lint Passed
No Test Coverage
Build Status
Buildable 6675
Build 6892: arc lint + arc unit

Event Timeline

sbruno retitled this revision from to Convert igb(4) to iflib.
sbruno updated this object.
sbruno edited the test plan for this revision. (Show Details)
sbruno added subscribers: gallatin, rstone, kmacy and 2 others.

I have not done anything more than *compile* tested this.

It is missing legacy mode and should not be committed as-is.

sbruno edited edge metadata.

Make a if_igb.ko (legacy) and an if_igb_iflib.ko so that we have
the ability to test this stuff out before going live.

I need to actually test this somewhere, but it compiles a legacy and iflib module now.

Updating to capture all the things.

This unifies lem, em and igb into one 'em' device, enables multiple
queues in em(4) when supported.

sbruno retitled this revision from Convert igb(4) to iflib to Convert igb(4), em(4) and lem(4) to iflib.Jan 2 2017, 4:07 PM
sbruno updated this object.

Purge legacy driver support from 12-current version. We'll do the
legacy/iflib dance for the MFC to 11-stable.

Due to POLA issues, Matt is using the suggestions from John to create
an igbX device to keep users from being SUPER angry when this lands
later today.

Changes need to be made to build and use if_lem for the boards that need it. Also, we are going to install a symlink from if_em.ko to if_igb.ko such that users of modules don't get immediately hosed on an update if they aren't building the drivers into the kernel and are expecting loader.conf 'if_igb_load=YES' to work.

jhb added inline comments.

These seem unrelated?


You shouldn't need this #ifndef. Instead, you should add opt_iflib.h to the relevant module Makefiles in SRC.


Where is this defined? It doesn't seem to be in this patch?


Ugh, yeah. I'll revert that uneeded bit.


Seems redundant as I do have that in the module Makefile. I'll remove.


Its in if_em.c which is being hidden from default view as most, if not all of the file is being replaced.

Address review comments:

  • restore broken white space
  • remove uneeded #ifdef KLD_MODULE

Add installation of symlink during installkernel so that loader.conf:if_igb_load=YES
still works for users who are currently using igb(4) as a module and don't have em(4)
loaded or built into their kernel.

This is now ready to land.

sbruno added a reviewer: sbruno.
This revision is now accepted and ready to land.Jan 10 2017, 1:47 PM