emx: Don't update TDT upon very packets transmitted
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 22 Nov 2012 12:53:36 +0000 (20:53 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 22 Nov 2012 14:14:08 +0000 (22:14 +0800)
commit7f32a9b0f8f25e43ab2ae4ee0d82ce69325d3b4b
tree918314a6dafbc9eb5662c816a3b2ef3d368d462d
parent871c0e2b6879cde2fe8b1c76bc3ae0040abb975c
emx: Don't update TDT upon very packets transmitted

The TDT is updated only 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.emxX.tx_wreg_nsegs.

CPU usage when transmitting 18bytes tiny UDP datagrams @1.48Mpps with
82571 on AMD970 (3500Mhz) are reduced from 50% to 30% with the default
value.

Inspired-by: FreeBSD netmap's paper
sys/dev/netif/emx/if_emx.c
sys/dev/netif/emx/if_emx.h