From: Jens Axboe <[email protected]>
To: Linus Torvalds <[email protected]>
Cc: io-uring <[email protected]>
Subject: [GIT PULL] io_uring updates for 6.12-rc1
Date: Fri, 13 Sep 2024 11:02:06 -0600 [thread overview]
Message-ID: <[email protected]> (raw)
Hi Linus,
Here are the main io_uring changes for the 6.12 merge window. There will
be a followup one that adds discard support, but since that depends on
both this branch and the block branch, it'll be sent post both of those.
This pull request contains:
- NAPI fixes and cleanups (Pavel, Olivier)
- Add support for absolute timeouts (Pavel)
- Fixes for io-wq/sqpoll affinities (Felix)
- Efficiency improvements for dealing with huge pages (Chenliang)
- Support for a minwait mode, where the application essentially has two
timouts - one smaller one that defines the batch timeout, and the
overall large one similar to what we had before. This enables
efficient use of batching based on count + timeout, while still working
well with periods of less intensive workloads.
- Use ITER_UBUF for single segment sends
- Add support for incremental buffer consumption. Right now each
operation will always consume a full buffer. With incremental
consumption, a recv/read operation only consumes the part of the
buffer that it needs to satisfy the operation.
- Add support for GCOV for io_uring, to help retain a high coverage of
test to code ratio.
- Fix regression with ocfs2, where an odd -EOPNOTSUPP wasn't correctly
converted to a blocking retry.
- Add support for cloning registered buffers from one ring to another.
- Misc cleanups (Anuj, me)
Please pull!
The following changes since commit 5be63fc19fcaa4c236b307420483578a56986a37:
Linux 6.11-rc5 (2024-08-25 19:07:11 +1200)
are available in the Git repository at:
git://git.kernel.dk/linux.git tags/for-6.12/io_uring-20240913
for you to fetch changes up to 7cc2a6eadcd7a5aa36ac63e6659f5c6138c7f4d2:
io_uring: add IORING_REGISTER_COPY_BUFFERS method (2024-09-12 10:14:15 -0600)
----------------------------------------------------------------
for-6.12/io_uring-20240913
----------------------------------------------------------------
Anuj Gupta (2):
io_uring: add new line after variable declaration
io_uring: remove unused rsrc_put_fn
Chenliang Li (2):
io_uring/rsrc: store folio shift and mask into imu
io_uring/rsrc: enable multi-hugepage buffer coalescing
Felix Moessbauer (3):
io_uring/sqpoll: do not allow pinning outside of cpuset
io_uring/io-wq: do not allow pinning outside of cpuset
io_uring/io-wq: inherit cpuset of cgroup in io worker
Jens Axboe (22):
io_uring/kbuf: use 'bl' directly rather than req->buf_list
io_uring/net: use ITER_UBUF for single segment send maps
io_uring/kbuf: turn io_buffer_list booleans into flags
io_uring: encapsulate extraneous wait flags into a separate struct
io_uring: move schedule wait logic into helper
io_uring: implement our own schedule timeout handling
io_uring: add support for batch wait timeout
io_uring: wire up min batch wake timeout
io_uring/kbuf: shrink nr_iovs/mode in struct buf_sel_arg
io_uring/kbuf: add io_kbuf_commit() helper
io_uring/kbuf: move io_ring_head_to_buf() to kbuf.h
Revert "io_uring: Require zeroed sqe->len on provided-buffers send"
io_uring/kbuf: pass in 'len' argument for buffer commit
io_uring/kbuf: add support for incremental buffer consumption
io_uring: add GCOV_PROFILE_URING Kconfig option
io_uring/eventfd: move refs to refcount_t
io_uring/rw: treat -EOPNOTSUPP for IOCB_NOWAIT like -EAGAIN
io_uring/rw: drop -EOPNOTSUPP check in __io_complete_rw_common()
io_uring/rsrc: clear 'slot' entry upfront
io_uring/rsrc: add reference count to struct io_mapped_ubuf
io_uring/register: provide helper to get io_ring_ctx from 'fd'
io_uring: add IORING_REGISTER_COPY_BUFFERS method
Olivier Langlois (2):
io_uring: add napi busy settings to the fdinfo output
io_uring: micro optimization of __io_sq_thread() condition
Pavel Begunkov (4):
io_uring/napi: refactor __io_napi_busy_loop()
io_uring/napi: postpone napi timeout adjustment
io_uring: add absolute mode wait timeouts
io_uring: user registered clockid for wait timeouts
include/linux/io_uring_types.h | 3 +
include/uapi/linux/io_uring.h | 42 ++++++-
init/Kconfig | 13 +++
io_uring/Makefile | 4 +
io_uring/eventfd.c | 13 ++-
io_uring/fdinfo.c | 14 ++-
io_uring/io-wq.c | 25 ++++-
io_uring/io_uring.c | 212 ++++++++++++++++++++++++++---------
io_uring/io_uring.h | 12 ++
io_uring/kbuf.c | 96 ++++++++--------
io_uring/kbuf.h | 94 +++++++++++-----
io_uring/napi.c | 35 ++----
io_uring/napi.h | 16 ---
io_uring/net.c | 27 +++--
io_uring/register.c | 91 +++++++++++----
io_uring/register.h | 1 +
io_uring/rsrc.c | 245 ++++++++++++++++++++++++++++++++++-------
io_uring/rsrc.h | 14 ++-
io_uring/rw.c | 19 +++-
io_uring/sqpoll.c | 7 +-
20 files changed, 723 insertions(+), 260 deletions(-)
--
Jens Axboe
next reply other threads:[~2024-09-13 17:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-13 17:02 Jens Axboe [this message]
2024-09-16 11:59 ` [GIT PULL] io_uring updates for 6.12-rc1 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] \
/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