Re: [PATCH net-next v2 00/10] udp/ipv6 optimisations

From: Willem de Bruijn
Date: Thu Jan 27 2022 - 10:18:02 EST


On Wed, Jan 26, 2022 at 7:36 PM Pavel Begunkov <asml.silence@xxxxxxxxx> wrote:
>
> 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(-)

For the series:

Reviewed-by: Willem de Bruijn <willemb@xxxxxxxxxx>

Iterative review vs v1, where I only had one small comment, which was
addressed. NB: Due to some subject line changes, it wasn't immediately
clear to me that this was just a range-diff over the first 10 patches
in both series.