• Igor Russkikh's avatar
    net: atlantic: implement UDP GSO offload · 822cd114
    Igor Russkikh authored
    atlantic hardware does support UDP hardware segmentation offload.
    This allows user to specify one large contiguous buffer with data
    which then will be split automagically into multiple UDP packets
    of specified size.
    
    Bulk sending of large UDP streams lowers CPU usage and increases
    bandwidth.
    
    We did estimations both with udpgso_bench_tx test tool and with modified
    iperf3 measurement tool (4 streams, multithread, 200b packet size)
    over AQC<->AQC 10G link. Flow control is disabled to prevent RX side
    impact on measurements.
    
    No UDP GSO:
    	iperf3 -c 10.0.1.2 -u -b0 -l 200 -P4 --multithread
    UDP GSO:
    	iperf3 -c 10.0.1.2 -u -b0 -l 12600 --udp-lso 200 -P4 --multithread
    
    Mode          CPU   iperf speed    Line speed   Packets per second
    -------------------------------------------------------------
    NO UDP GSO    350%   3.07 Gbps      3.8 Gbps     1,919,419
    SW UDP GSO    200%   5.55 Gbps      6.4 Gbps     3,286,144
    HW UDP GSO    90%    6.80 Gbps      8.4 Gbps     4,273,117
    Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    822cd114
aq_nic.c 28.9 KB