On Thu, Nov 29, 2018 at 3:26 PM Willem de Bruijn
<willemdebruijn.ker...@gmail.com> 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

one additional change that I forgot to add to the changelog

  - 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.

Reply via email to