bnx: Improve tiny packets transmission performance on low frequency CPU
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 25 Nov 2012 06:08:31 +0000 (14:08 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 25 Nov 2012 06:36:48 +0000 (14:36 +0800)
commitc9b7f592671d46a6f91f2054b49ef1350d7475cb
tree6c96211542023bd03b513e24dd1f6ddc5965c39c
parentdca60051227a1635cfbca8316c42687f1ab128dc
bnx: Improve tiny packets transmission performance on low frequency CPU

- Reduce TX coalesce BDs from 128 to 64.  This improves tiny packets
  transmission performance on AMD970@2200Mhz a little bit (1.40Mpps
  -> 1.48Mpps)
- Update TX PROD register a little bit often; mainly to improve timeliness
  of packets transmission:
  The TX PROD register is updated after certain amount of TX descriptors
  are added to the hardware TX ring.  The default value of the amount of
  TX descriptors are 8.  This value could be further tuned by per-device
  sysctl node hw.bnxX.tx_wreg.  The default value greatly improves tiny
  packets performance on AMD970@800Mhz (780Kpps -> 1.11Mpps) and it does
  not increase CPU usage on AMD970@3500Mhz (CPU usage stays @31%).
sys/dev/netif/bnx/if_bnx.c
sys/dev/netif/bnx/if_bnxvar.h