jme: Improve tiny packets transmission performance on low frequency CPU
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 3 Dec 2012 01:53:20 +0000 (09:53 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 3 Dec 2012 02:07:03 +0000 (10:07 +0800)
commit3a65efa657c814b3133903580145cbd07120e46c
tree30cd307bbbb7e2f4bc566235afd9dabc6857d89d
parentaad8b3fefb192f89783f0b1e383f701aafd4f00b
jme: Improve tiny packets transmission performance on low frequency CPU

Update TXCSR register a little bit often; mainly to improve timeliness of
packets transmission:
The TXCSR 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 16.  This value could be further tuned by per-device sysctl
node hw.jmeX.tx_wreg.

The default value improves tiny packets transmission performance w/ JMC250
on AMD970@2200Mhz (831Kpps -> 911Kpps), on AMD970@800Mhz (484Kpps -> 834Kpps)
and it does not increase CPU usage on AMD970@3500Mhz (CPU usage stays @26%,
JMC250 could only do 911Kpps).
sys/dev/netif/jme/if_jme.c
sys/dev/netif/jme/if_jmevar.h