* [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