On Fri, 2018-11-30 at 15:32 -0500, Willem de Bruijn wrote: > From: Willem de Bruijn <will...@google.com> > > Extend zerocopy to udp sockets. Allow setting sockopt SO_ZEROCOPY and > interpret flag MSG_ZEROCOPY. > > This patch was previously part of the zerocopy RFC patchsets. Zerocopy > is not effective at small MTU. With segmentation offload building > larger datagrams, the benefit of page flipping outweights the cost of > generating a completion notification. > > tools/testing/selftests/net/msg_zerocopy.sh after applying follow-on > test patch and making skb_orphan_frags_rx same as skb_orphan_frags: > > ipv4 udp -t 1 > tx=191312 (11938 MB) txc=0 zc=n > rx=191312 (11938 MB) > ipv4 udp -z -t 1 > tx=304507 (19002 MB) txc=304507 zc=y > rx=304507 (19002 MB) > ok > ipv6 udp -t 1 > tx=174485 (10888 MB) txc=0 zc=n > rx=174485 (10888 MB) > ipv6 udp -z -t 1 > tx=294801 (18396 MB) txc=294801 zc=y > rx=294801 (18396 MB) > ok > > Changes > v1 -> v2 > - Fixup reverse christmas tree violation > v2 -> v3 > - Split refcount avoidance optimization into separate patch > - Fix refcount leak on error in fragmented case > (thanks to Paolo Abeni for pointing this one out!) > - Fix refcount inc on zero > - Test sock_flag SOCK_ZEROCOPY directly in __ip_append_data. > This is needed since commit 5cf4a8532c99 ("tcp: really ignore > MSG_ZEROCOPY if no SO_ZEROCOPY") did the same for tcp. > > Signed-off-by: Willem de Bruijn <will...@google.com>
Acked-by: Paolo Abeni <pab...@redhat.com>