public inbox for [email protected]
 help / color / mirror / Atom feed
* [GIT PULL] io_uring updates for 6.15-rc1
@ 2025-03-22 17:28 Jens Axboe
  0 siblings, 0 replies; only message in thread
From: Jens Axboe @ 2025-03-22 17:28 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: io-uring

Hi Linus,

This is the first of the io_uring pull requests for the 6.15 merge
window, there will be others once the net tree has gone in. Sending it
off a bit early as I'll be at LSFMM in Montreal most of next week, with
a bunch of other folks. This pull request contains:

- Cleanup and unification of cancelation handling across various request
  types.

- Improvement for bundles, supporting them both for incrementally
  consumed buffers, and for non-multishot requests.

- Enable toggling of using iowait while waiting on io_uring events or
  not. Unfortunately this is still tied with CPU frequency boosting on
  short waits, as the scheduler side has not been very receptive to
  splitting the (useless) iowait stat from the cpufreq implied boost.

- Add support for kbuf nodes, enabling zero-copy support for the ublk
  block driver.

- Various cleanups for resource node handling.

- Series greatly cleaning up the legacy provided (non-ring based)
  buffers. For years, we've been pushing the ring provided buffers as
  the way to go, and that is what people have been using. Reduce the
  complexity and code associated with legacy provided buffers.

- Series cleaning up the compat handling.

- Series improving and cleaning up the recvmsg/sendmsg iovec and msg
  handling.

- Series of cleanups for io-wq.

- Start adding a bunch of selftests. The liburing repository generally
  carries feature and regression tests for everything, but at least for
  ublk initially, we'll try and go the route of having it in selftests
  as well. We'll see how this goes, might decide to migrate more tests
  this way in the future.


- Various little cleanups and fixes.

Please pull!


The following changes since commit 6ebf05189dfc6d0d597c99a6448a4d1064439a18:

  io_uring/net: save msg_control for compat (2025-02-25 09:03:51 -0700)

are available in the Git repository at:

  git://git.kernel.dk/linux.git tags/for-6.15/io_uring-20250322

for you to fetch changes up to 0f3ebf2d4bc0296c61543b2a729151d89c60e1ec:

  selftests: ublk: add stripe target (2025-03-22 08:35:08 -0600)

----------------------------------------------------------------
for-6.15/io_uring-20250322

----------------------------------------------------------------
Arnd Bergmann (1):
      io_uring/net: fix build warning for !CONFIG_COMPAT

Caleb Sander Mateos (20):
      io_uring: use IO_REQ_LINK_FLAGS more
      io_uring: pass ctx instead of req to io_init_req_drain()
      io_uring/rsrc: avoid NULL check in io_put_rsrc_node()
      io_uring: introduce type alias for io_tw_state
      io_uring: pass struct io_tw_state by value
      io_uring: use lockless_cq flag in io_req_complete_post()
      io_uring/rsrc: use rq_data_dir() to compute bvec dir
      io_uring/uring_cmd: specify io_uring_cmd_import_fixed() pointer type
      io_uring: convert cmd_to_io_kiocb() macro to function
      io_uring/ublk: report error when unregister operation fails
      io_uring/rsrc: declare io_find_buf_node() in header file
      io_uring/nop: use io_find_buf_node()
      ublk: don't cast registered buffer index to int
      io_uring/rsrc: include io_uring_types.h in rsrc.h
      io_uring/rsrc: split out io_free_node() helper
      io_uring/rsrc: free io_rsrc_node using kfree()
      io_uring/rsrc: call io_free_node() on io_sqe_buffer_register() failure
      io_uring/rsrc: avoid NULL node check on io_sqe_buffer_register() failure
      io_uring/rsrc: skip NULL file/buffer checks in io_free_rsrc_node()
      io_uring: introduce io_cache_free() helper

Jens Axboe (10):
      io_uring/cancel: add generic remove_all helper
      io_uring/futex: convert to io_cancel_remove_all()
      io_uring/waitid: convert to io_cancel_remove_all()
      io_uring/cancel: add generic cancel helper
      io_uring/futex: use generic io_cancel_remove() helper
      io_uring/waitid: use generic io_cancel_remove() helper
      io_uring/net: improve recv bundles
      Merge branch 'io_uring-6.14' into for-6.15/io_uring
      io_uring/kbuf: enable bundles for incrementally consumed buffers
      io_uring: enable toggle of iowait usage when waiting on CQEs

Keith Busch (8):
      io_uring/rsrc: remove redundant check for valid imu
      io_uring/nop: reuse req->buf_index
      io_uring/rw: move buffer_select outside generic prep
      io_uring/rw: move fixed buffer import to issue path
      io_uring: add support for kernel registered bvecs
      ublk: zc register/unregister bvec
      io_uring: cache nodes and mapped buffers
      Revert "io_uring/rsrc: simplify the bvec iter count calculation"

Max Kellermann (6):
      io_uring/io-wq: eliminate redundant io_work_get_acct() calls
      io_uring/io-wq: add io_worker.acct pointer
      io_uring/io-wq: move worker lists to struct io_wq_acct
      io_uring/io-wq: cache work->flags in variable
      io_uring/io-wq: do not use bogus hash value
      io_uring/io-wq: pass io_wq to io_get_next_work()

Ming Lei (27):
      selftests: ublk: add kernel selftests for ublk
      selftests: ublk: add file backed ublk
      selftests: ublk: add ublk zero copy test
      selftests: ublk: make ublk_stop_io_daemon() more reliable
      selftests: ublk: fix build failure
      selftests: ublk: add --foreground command line
      selftests: ublk: fix parsing '-a' argument
      selftests: ublk: support shellcheck and fix all warning
      selftests: ublk: don't pass ${dev_id} to _cleanup_test()
      selftests: ublk: move zero copy feature check into _add_ublk_dev()
      selftests: ublk: load/unload ublk_drv when preparing & cleaning up tests
      selftests: ublk: add one stress test for covering IO vs. removing device
      selftests: ublk: add stress test for covering IO vs. killing ublk server
      selftests: ublk: improve test usability
      selftests: ublk: add one dependency header
      selftests: ublk: don't show `modprobe` failure
      selftests: ublk: add variable for user to not show test result
      selftests: ublk: fix write cache implementation
      selftests: ublk: fix starting ublk device
      selftests: ublk: add generic_01 for verifying sequential IO order
      selftests: ublk: add single sqe allocator helper
      selftests: ublk: increase max buffer size to 1MB
      selftests: ublk: move common code into common.c
      selftests: ublk: prepare for supporting stripe target
      selftests: ublk: enable zero copy for null target
      selftests: ublk: simplify loop io completion
      selftests: ublk: add stripe target

Pavel Begunkov (35):
      io_uring: deduplicate caches deallocation
      io_uring: check for iowq alloc_workqueue failure
      io_uring: sanitise ring params earlier
      io_uring/kbuf: remove legacy kbuf bulk allocation
      io_uring/kbuf: remove legacy kbuf kmem cache
      io_uring/kbuf: move locking into io_kbuf_drop()
      io_uring/kbuf: simplify __io_put_kbuf
      io_uring/kbuf: remove legacy kbuf caching
      io_uring/kbuf: open code __io_put_kbuf()
      io_uring/kbuf: introduce io_kbuf_drop_legacy()
      io_uring/kbuf: uninline __io_put_kbufs
      io_uring: introduce io_is_compat()
      io_uring/cmd: optimise !CONFIG_COMPAT flags setting
      io_uring/rw: compile out compat param passing
      io_uring/rw: shrink io_iov_compat_buffer_select_prep
      io_uring/waitid: use io_is_compat()
      io_uring/net: use io_is_compat()
      io_uring/net: fix accept multishot handling
      io_uring/net: canonise accept mshot handling
      io_uring: make io_poll_issue() sturdier
      io_uring/rw: allocate async data in io_prep_rw()
      io_uring/rw: rename io_import_iovec()
      io_uring/rw: extract helper for iovec import
      io_uring/rw: open code io_prep_rw_setup()
      io_uring/net: reuse req->buf_index for sendzc
      io_uring/nvme: pass issue_flags to io_uring_cmd_import_fixed()
      io_uring: combine buffer lookup and import
      io_uring/net: remove unnecessary REQ_F_NEED_CLEANUP
      io_uring/net: simplify compat selbuf iov parsing
      io_uring/net: isolate msghdr copying code
      io_uring/net: verify msghdr before copying iovec
      io_uring/net: derive iovec storage later
      io_uring/net: unify *mshot_prep calls with compat
      io_uring/net: extract iovec import into a helper
      io_uring: rearrange opdef flags by use pattern

Xinyu Zhang (1):
      nvme: map uring_cmd data even if address is 0

Yue Haibing (1):
      io_uring: Remove unused declaration io_alloc_async_data()

 MAINTAINERS                                   |    1 +
 drivers/block/ublk_drv.c                      |   56 +-
 drivers/nvme/host/ioctl.c                     |   12 +-
 include/linux/io_uring/cmd.h                  |   17 +-
 include/linux/io_uring_types.h                |   20 +-
 include/uapi/linux/io_uring.h                 |    2 +
 include/uapi/linux/ublk_cmd.h                 |    4 +
 io_uring/alloc_cache.h                        |    6 +
 io_uring/cancel.c                             |   42 +
 io_uring/cancel.h                             |    8 +
 io_uring/filetable.c                          |    2 +-
 io_uring/futex.c                              |   62 +-
 io_uring/io-wq.c                              |  230 ++--
 io_uring/io-wq.h                              |    7 +-
 io_uring/io_uring.c                           |  249 ++--
 io_uring/io_uring.h                           |   15 +-
 io_uring/kbuf.c                               |  200 ++-
 io_uring/kbuf.h                               |  100 +-
 io_uring/msg_ring.c                           |    2 +-
 io_uring/net.c                                |  257 ++--
 io_uring/nop.c                                |   18 +-
 io_uring/notif.c                              |    4 +-
 io_uring/opdef.c                              |    4 +-
 io_uring/opdef.h                              |   12 +-
 io_uring/poll.c                               |   18 +-
 io_uring/poll.h                               |    4 +-
 io_uring/rsrc.c                               |  246 +++-
 io_uring/rsrc.h                               |   24 +-
 io_uring/rw.c                                 |  200 +--
 io_uring/rw.h                                 |    5 +-
 io_uring/splice.c                             |    3 +-
 io_uring/timeout.c                            |   16 +-
 io_uring/uring_cmd.c                          |   33 +-
 io_uring/waitid.c                             |   56 +-
 tools/testing/selftests/Makefile              |    1 +
 tools/testing/selftests/ublk/.gitignore       |    3 +
 tools/testing/selftests/ublk/Makefile         |   27 +
 tools/testing/selftests/ublk/common.c         |   55 +
 tools/testing/selftests/ublk/config           |    1 +
 tools/testing/selftests/ublk/file_backed.c    |  169 +++
 tools/testing/selftests/ublk/kublk.c          | 1138 +++++++++++++++++
 tools/testing/selftests/ublk/kublk.h          |  370 ++++++
 tools/testing/selftests/ublk/null.c           |  106 ++
 tools/testing/selftests/ublk/stripe.c         |  318 +++++
 tools/testing/selftests/ublk/test_common.sh   |  246 ++++
 .../testing/selftests/ublk/test_generic_01.sh |   44 +
 tools/testing/selftests/ublk/test_loop_01.sh  |   32 +
 tools/testing/selftests/ublk/test_loop_02.sh  |   22 +
 tools/testing/selftests/ublk/test_loop_03.sh  |   31 +
 tools/testing/selftests/ublk/test_loop_04.sh  |   22 +
 tools/testing/selftests/ublk/test_null_01.sh  |   20 +
 tools/testing/selftests/ublk/test_null_02.sh  |   20 +
 .../testing/selftests/ublk/test_stress_01.sh  |   47 +
 .../testing/selftests/ublk/test_stress_02.sh  |   47 +
 .../testing/selftests/ublk/test_stripe_01.sh  |   34 +
 .../testing/selftests/ublk/test_stripe_02.sh  |   24 +
 tools/testing/selftests/ublk/trace/seq_io.bt  |   25 +
 tools/testing/selftests/ublk/ublk_dep.h       |   18 +
 58 files changed, 3883 insertions(+), 872 deletions(-)

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-03-22 17:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-22 17:28 [GIT PULL] io_uring updates for 6.15-rc1 Jens Axboe

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