lkml.org 
[lkml]   [2022]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH net-next v2 00/10] udp/ipv6 optimisations
    Date
    Shed some weight from udp/ipv6. Zerocopy benchmarks over dummy showed
    ~5% tx/s improvement, should be similar for small payload non-zc
    cases.

    The performance comes from killing 4 atomics and a couple of big struct
    memcpy/memset. 1/10 removes a pair of atomics on dst refcounting for
    cork->skb setup, 9/10 saves another pair on cork init. 5/10 and 8/10
    kill extra 88B memset and memcpy respectively.

    v2: add a comment about setting dst early in ip6_setup_cork()
    drop non-udp patches for now
    add patch 10

    Pavel Begunkov (10):
    ipv6: optimise dst refcounting on skb init
    udp6: shuffle up->pending AF_INET bits
    ipv6: remove daddr temp buffer in __ip6_make_skb
    ipv6: clean up cork setup/release
    ipv6: don't zero inet_cork_full::fl after use
    ipv6: pass full cork into __ip6_append_data()
    udp6: pass flow in ip6_make_skb together with cork
    udp6: don't make extra copies of iflow
    ipv6: optimise dst refcounting on cork init
    ipv6: partially inline ipv6_fixup_options

    include/net/ipv6.h | 14 ++++--
    net/ipv6/exthdrs.c | 8 ++--
    net/ipv6/ip6_output.c | 99 ++++++++++++++++++++++------------------
    net/ipv6/udp.c | 103 ++++++++++++++++++++----------------------
    4 files changed, 118 insertions(+), 106 deletions(-)

    --
    2.34.1

    \
     
     \ /
      Last update: 2022-01-27 01:37    [W:3.140 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site