igb: Improve tiny packets reception performance on low frequency CPU
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 9 Dec 2012 06:36:20 +0000 (14:36 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 9 Dec 2012 06:43:42 +0000 (14:43 +0800)
commitb56e8196ddfdb1f6e5d0204b93e2be28fb17a7a3
treefc146cc0fbedcfb4927eb197cb674ecc19cb848a
parent678a10c07eac5ff21749f09cab559ee2d15dd9b9
igb: Improve tiny packets reception performance on low frequency CPU

Update RDT register a little bit often, so the RX descriptors are made
to the NIC chip on a more regularly base:
The RDT register is updated after certain amount of RX descriptors are
added to the hardware RX ring.  The default value of the amount of RX
descriptors are 32.  This value could be further tuned by per-device
sysctl node hw.igbX.rxY_wreg.

The default value improves tiny packets reception performance w/ 82576
on AMD970@800Mhz under interrupt mode for single stream (1.28Mpps ->
1.48Mpps) and it does not increase CPU usage on AMD970@3500Mhz (CPU
usage stays @36%).

This commit does _not_ seem to affect the tiny packet reception
performance when the workload are evenly distributed to all CPUs.
sys/dev/netif/igb/if_igb.c
sys/dev/netif/igb/if_igb.h