git: tcp: Use mbuf jcluster (4K) in sosendtcp(); improve 10Ge TSO performance
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Fri Sep 13 02:38:34 PDT 2013
commit ef82c254b9dedc4b48fc86848142dc17a953c9e8
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Fri Sep 13 17:26:22 2013 +0800
tcp: Use mbuf jcluster (4K) in sosendtcp(); improve 10Ge TSO performance
For the Myricom PCIE-8AL-C I have tested, this gives ~900Mbps performance
boost using 1500 MTU when TSO is enabled (from 7.7Gbps to 8.6Gbps).
Using mbuf jcluster could:
- Reduce the number of TX descriptors needed for one TSO packet.
- Let the NIC chip perform longer large data burst.
I believe this is the main reasons for the 10Ge performance boost.
Reduce sosend_agglim from 3 to 2, which means 8K aggregation (was 6K
aggregation) before user thread dispatches the sending buf to netisr.
net.inet.tcp.sosend_jcluster is added to enable this feature; it is
enabled by default.
Summary of changes:
sys/kern/uipc_socket.c | 10 ++++++++--
sys/netinet/tcp_input.c | 6 +++++-
2 files changed, 13 insertions(+), 3 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ef82c254b9dedc4b48fc86848142dc17a953c9e8
--
DragonFly BSD source repository
More information about the Commits
mailing list