Messages in this thread | | | From | Willem de Bruijn <> | Date | Thu, 27 Jan 2022 10:17:13 -0500 | Subject | Re: [PATCH net-next v2 00/10] udp/ipv6 optimisations |
| |
On Wed, Jan 26, 2022 at 7:36 PM Pavel Begunkov <asml.silence@gmail.com> 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@google.com>
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.
| |