sock: add MSG_ZEROCOPY
authorWillem de Bruijn <willemb@google.com>
Thu, 3 Aug 2017 20:29:39 +0000 (16:29 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 4 Aug 2017 04:37:29 +0000 (21:37 -0700)
commit52267790ef52d7513879238ca9fac22c1733e0e3
tree3df2cd31743717fbf4335b950cc52328f2f44f14
parent3ece782693c4b64d588dd217868558ab9a19bfe7
sock: add MSG_ZEROCOPY

The kernel supports zerocopy sendmsg in virtio and tap. Expand the
infrastructure to support other socket types. Introduce a completion
notification channel over the socket error queue. Notifications are
returned with ee_origin SO_EE_ORIGIN_ZEROCOPY. ee_errno is 0 to avoid
blocking the send/recv path on receiving notifications.

Add reference counting, to support the skb split, merge, resize and
clone operations possible with SOCK_STREAM and other socket types.

The patch does not yet modify any datapaths.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
include/linux/socket.h
include/net/sock.h
include/uapi/linux/errqueue.h
net/core/datagram.c
net/core/skbuff.c
net/core/sock.c