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