From: Jens Axboe <[email protected]>
To: Linus Torvalds <[email protected]>
Cc: io-uring <[email protected]>, netdev <[email protected]>
Subject: [GIT PULL] io_uring support for zerocopy send
Date: Sun, 31 Jul 2022 09:03:36 -0600 [thread overview]
Message-ID: <[email protected]> (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 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox