DragonFly commits List (threaded) for 2013-02
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: emx: Implement multiple hardware TX queue support; disabled by default
commit d84018e9fb36a00a2dc66fc24ff89725c03b0190
Author: Sepherosa Ziehau <sephe@dragonflybsd.org>
Date: Thu Feb 7 14:38:04 2013 +0800
emx: Implement multiple hardware TX queue support; disabled by default
Two notes about the multiple hardware TX queue support:
- It could only be enabled on 82571, 82572 and es2lan. Enabling it on
82574, whose datasheet claims multiple hardware TX queue support,
could cause watchdog timeout when heavy TCP receiving test are
conducted.
- It is disabled by default. Since 82571, 82572 and es2lan only have
one global context for TX hardware checksum and TSO, the driver will
have to setup TX context descriptor for each packet. Using TX context
descriptor for each packet could cause serious transmission performance
regression for tiny packets, see comment of following commit:
51e6819fc2ad7cefdf830dcc9f20bcbe2af2aa52
However, multiple hardware TX queues still could be enabled depending
on the workload (*):
o TSO probably are not affected by setting up a TX context descriptor
for each TSO packet.
o Stuffs do not using hardware TX checksum, e.g. IP fast forwarding.
Multiple hardware TX queues could be enabled globally by tunable:
hw.emx.txr=2
Multiple hardware TX queues could be enabled on individual interface by
tunable:
hw.emxY.txr=2
(*) Another thought is to add per-interface metric, which indicates the
size of packets that worth hardware checksum; if the packets' size is
below that metric, software checksum is used.
Summary of changes:
sys/conf/options | 1 +
sys/config/LINT | 1 +
sys/config/LINT64 | 1 +
sys/dev/netif/emx/if_emx.c | 598 ++++++++++++++++++++++++++++++---------------
sys/dev/netif/emx/if_emx.h | 25 +-
5 files changed, 420 insertions(+), 206 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d84018e9fb36a00a2dc66fc24ff89725c03b0190
--
DragonFly BSD source repository
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]