[GIT PULL] io_uring updates for 6.12-rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux