igb: Add MSI-X support
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 17 Jun 2012 08:03:11 +0000 (16:03 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 30 Jun 2012 02:30:25 +0000 (10:30 +0800)
commit9c0ecdcc951a27bafbb3d98ea106b80f89a83235
treef899cfbda08a349f05e2f95e45672dca1f48898c
parent8ecafb73b88da18c8ec13f65e754749399978308
igb: Add MSI-X support

- As many RX rings will be enabled, if they are allowed by the number of
  available MSI-X vectors and number of CPUs.
- RX MSI-X vectors could be grouped to specific CPU set.  However, the
  first CPU of the CPU set must be aligned on RX MSI-X vector count; by
  default RX MSI-X vectors are grouped according to the device's software
  unit number.  Tunable hw.igbX.msix.rxoff could be used to regroup RX
  MSI-X vector to a specific set of CPUs.
- TX ring uses seperate MSI-X if possible.  TX MSI-X vector could be bound
  to a specific CPU; bydefault TX MSI-X vectors is bound to the CPU based
  on the device's software unit number.  Tunable hw.igbX.msix.txoff could
  be used to bind TX MSI-X to a specific CPU.
- Per MSI-X vector interrupt moderation sysctl hw.igbX.msiY_rate is added.
  The default interrupt rate for TX is 4000, which is enough to generate
  1.48Mpps small packets.  The default interrupt rate for RX is 6000.
- MSI-X must not be enabled on 82575 according to the specification update
  from Intel.
sys/conf/options
sys/config/LINT
sys/config/LINT64
sys/dev/netif/igb/Makefile
sys/dev/netif/igb/if_igb.c
sys/dev/netif/igb/if_igb.h