• Harold Huang's avatar
    tun: support NAPI for packets received from batched XDP buffs · fb3f9037
    Harold Huang authored
    In tun, NAPI is supported and we can also use NAPI in the path of
    batched XDP buffs to accelerate packet processing. What is more, after
    we use NAPI, GRO is also supported. The iperf shows that the throughput of
    single stream could be improved from 4.5Gbps to 9.2Gbps. Additionally, 9.2
    Gbps nearly reachs the line speed of the phy nic and there is still about
    15% idle cpu core remaining on the vhost thread.
    
    Test topology:
    [iperf server]<--->tap<--->dpdk testpmd<--->phy nic<--->[iperf client]
    
    Iperf stream:
    iperf3 -c 10.0.0.2  -i 1 -t 10
    
    Before:
    ...
    [  5]   5.00-6.00   sec   558 MBytes  4.68 Gbits/sec    0   1.50 MBytes
    [  5]   6.00-7.00   sec   556 MBytes  4.67 Gbits/sec    1   1.35 MBytes
    [  5]   7.00-8.00   sec   556 MBytes  4.67 Gbits/sec    2   1.18 MBytes
    [  5]   8.00-9.00   sec   559 MBytes  4.69 Gbits/sec    0   1.48 MBytes
    [  5]   9.00-10.00  sec   556 MBytes  4.67 Gbits/sec    1   1.33 MBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec  5.39 GBytes  4.63 Gbits/sec   72          sender
    [  5]   0.00-10.04  sec  5.39 GBytes  4.61 Gbits/sec               receiver
    
    After:
    ...
    [  5]   5.00-6.00   sec  1.07 GBytes  9.19 Gbits/sec    0   1.55 MBytes
    [  5]   6.00-7.00   sec  1.08 GBytes  9.30 Gbits/sec    0   1.63 MBytes
    [  5]   7.00-8.00   sec  1.08 GBytes  9.25 Gbits/sec    0   1.72 MBytes
    [  5]   8.00-9.00   sec  1.08 GBytes  9.25 Gbits/sec   77   1.31 MBytes
    [  5]   9.00-10.00  sec  1.08 GBytes  9.24 Gbits/sec    0   1.48 MBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec  10.8 GBytes  9.28 Gbits/sec  166          sender
    [  5]   0.00-10.04  sec  10.8 GBytes  9.24 Gbits/sec               receiver
    
    Reported-at: https://lore.kernel.org/all/CACGkMEvTLG0Ayg+TtbN4q4pPW-ycgCCs3sC3-TF8cuRTf7Pp1A@mail.gmail.comSigned-off-by: default avatarHarold Huang <baymaxhuang@gmail.com>
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    Link: https://lore.kernel.org/r/20220228033805.1579435-1-baymaxhuang@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    fb3f9037
tun.c 85.2 KB