From: Jens Axboe <axboe@kernel.dk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: io-uring <io-uring@vger.kernel.org>, netdev <netdev@vger.kernel.org>
Subject: [GIT PULL] io_uring support for zerocopy send
Date: Sun, 31 Jul 2022 09:03:36 -0600 [thread overview]
Message-ID: <d5568318-39ea-0c39-c765-852411409b68@kernel.dk> (raw)
Hi Linus,
On top of the core io_uring changes, this pull request adds support for
efficient support for zerocopy sends through io_uring. Both ipv4 and
ipv6 is supported, as well as both TCP and UDP.
The core network changes to support this is in a stable branch from
Jakub that both io_uring and net-next has pulled in, and the io_uring
changes are layered on top of that.
All of the work has been done by Pavel.
Please pull!
The following changes since commit f6b543fd03d347e8bf245cee4f2d54eb6ffd8fcb:
io_uring: ensure REQ_F_ISREG is set async offload (2022-07-24 18:39:18 -0600)
are available in the Git repository at:
git://git.kernel.dk/linux-block.git tags/for-5.20/io_uring-zerocopy-send-2022-07-29
for you to fetch changes up to 14b146b688ad9593f5eee93d51a34d09a47e50b5:
io_uring: notification completion optimisation (2022-07-27 08:50:50 -0600)
----------------------------------------------------------------
for-5.20/io_uring-zerocopy-send-2022-07-29
----------------------------------------------------------------
David Ahern (1):
net: Allow custom iter handler in msghdr
Jens Axboe (2):
Merge branch 'io_uring-zerocopy-send' of git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux into for-5.20/io_uring-zerocopy-send
Merge branch 'for-5.20/io_uring' into for-5.20/io_uring-zerocopy-send
Pavel Begunkov (33):
ipv4: avoid partial copy for zc
ipv6: avoid partial copy for zc
skbuff: don't mix ubuf_info from different sources
skbuff: add SKBFL_DONT_ORPHAN flag
skbuff: carry external ubuf_info in msghdr
net: introduce managed frags infrastructure
net: introduce __skb_fill_page_desc_noacc
ipv4/udp: support externally provided ubufs
ipv6/udp: support externally provided ubufs
tcp: support externally provided ubufs
net: fix uninitialised msghdr->sg_from_iter
io_uring: initialise msghdr::msg_ubuf
io_uring: export io_put_task()
io_uring: add zc notification infrastructure
io_uring: cache struct io_notif
io_uring: complete notifiers in tw
io_uring: add rsrc referencing for notifiers
io_uring: add notification slot registration
io_uring: wire send zc request type
io_uring: account locked pages for non-fixed zc
io_uring: allow to pass addr into sendzc
io_uring: sendzc with fixed buffers
io_uring: flush notifiers after sendzc
io_uring: rename IORING_OP_FILES_UPDATE
io_uring: add zc notification flush requests
io_uring: enable managed frags with register buffers
selftests/io_uring: test zerocopy send
io_uring/net: improve io_get_notif_slot types
io_uring/net: checks errors of zc mem accounting
io_uring/net: make page accounting more consistent
io_uring/net: use unsigned for flags
io_uring: export req alloc from core
io_uring: notification completion optimisation
include/linux/io_uring_types.h | 30 +
include/linux/skbuff.h | 66 ++-
include/linux/socket.h | 5 +
include/uapi/linux/io_uring.h | 45 +-
io_uring/Makefile | 2 +-
io_uring/io_uring.c | 61 +--
io_uring/io_uring.h | 43 ++
io_uring/net.c | 193 ++++++-
io_uring/net.h | 3 +
io_uring/notif.c | 159 ++++++
io_uring/notif.h | 90 +++
io_uring/opdef.c | 24 +-
io_uring/rsrc.c | 67 ++-
io_uring/rsrc.h | 25 +-
io_uring/tctx.h | 26 -
net/compat.c | 1 +
net/core/datagram.c | 14 +-
net/core/skbuff.c | 37 +-
net/ipv4/ip_output.c | 50 +-
net/ipv4/tcp.c | 33 +-
net/ipv6/ip6_output.c | 49 +-
net/socket.c | 2 +
tools/testing/selftests/net/Makefile | 1 +
tools/testing/selftests/net/io_uring_zerocopy_tx.c | 605 +++++++++++++++++++++
.../testing/selftests/net/io_uring_zerocopy_tx.sh | 131 +++++
25 files changed, 1604 insertions(+), 158 deletions(-)
create mode 100644 io_uring/notif.c
create mode 100644 io_uring/notif.h
create mode 100644 tools/testing/selftests/net/io_uring_zerocopy_tx.c
create mode 100755 tools/testing/selftests/net/io_uring_zerocopy_tx.sh
--
Jens Axboe
next reply other threads:[~2022-07-31 15:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-31 15:03 Jens Axboe [this message]
2022-08-02 20:45 ` [GIT PULL] io_uring support for zerocopy send Linus Torvalds
2022-08-03 16:39 ` Jens Axboe
2022-08-03 16:44 ` Linus Torvalds
2022-08-03 16:47 ` Jens Axboe
2022-08-02 21:30 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d5568318-39ea-0c39-c765-852411409b68@kernel.dk \
--to=axboe@kernel.dk \
--cc=io-uring@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.