public inbox for [email protected]
 help / color / mirror / Atom feed
* [GIT PULL] io_uring support for zerocopy send
@ 2022-07-31 15:03 Jens Axboe
  2022-08-02 20:45 ` Linus Torvalds
  2022-08-02 21:30 ` pr-tracker-bot
  0 siblings, 2 replies; 6+ messages in thread
From: Jens Axboe @ 2022-07-31 15:03 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: io-uring, netdev

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-08-03 16:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-31 15:03 [GIT PULL] io_uring support for zerocopy send Jens Axboe
2022-08-02 20:45 ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox