Hi Linus, Here is the main pull request for io_uring changes for the 6.6 kernel release. Fairly quiet round in terms of features, mostly just improvements all over the map for existing code. In detail: - Initial support for socket operations through io_uring. Latter half of this will likely land with the 6.7 kernel, then allowing things like get/setsockopt (Breno) - Cleanup of the cancel code, and then adding support for canceling requests with the opcode as the key (me) - Improvements for the io-wq locking (me) - Fix affinity setting for SQPOLL based io-wq (me) - Remove the io_uring userspace code. These were added initially as copies from liburing, but all of them have since bitrotted and are way out of date at this point. Rather than attempt to keep them in sync, just get rid of them. People will have liburing available anyway for these examples. (Pavel) - Series improving the CQ/SQ ring caching (Pavel) - Misc fixes and cleanups (Pavel, Yue, me) Merges cleanly with the current master. Please pull! The following changes since commit fdf0eaf11452d72945af31804e2a1048ee1b574c: Linux 6.5-rc2 (2023-07-16 15:10:37 -0700) are available in the Git repository at: git://git.kernel.dk/linux.git tags/for-6.6/io_uring-2023-08-28 for you to fetch changes up to 644c4a7a721fb90356cdd42219c9928a3c386230: io_uring: move iopoll ctx fields around (2023-08-24 17:16:20 -0600) ---------------------------------------------------------------- for-6.6/io_uring-2023-08-28 ---------------------------------------------------------------- Breno Leitao (1): io_uring: Add io_uring command support for sockets Jens Axboe (18): io_uring/poll: always set 'ctx' in io_cancel_data io_uring/timeout: always set 'ctx' in io_cancel_data io_uring/cancel: abstract out request match helper io_uring/cancel: fix sequence matching for IORING_ASYNC_CANCEL_ANY io_uring: use cancelation match helper for poll and timeout requests io_uring/cancel: add IORING_ASYNC_CANCEL_USERDATA io_uring/cancel: support opcode based lookup and cancelation io_uring/cancel: wire up IORING_ASYNC_CANCEL_OP for sync cancel io_uring: annotate the struct io_kiocb slab for appropriate user copy io_uring: cleanup 'ret' handling in io_iopoll_check() io_uring/fdinfo: get rid of ref tryget io_uring/splice: use fput() directly io_uring: have io_file_put() take an io_kiocb rather than the file io_uring: remove unnecessary forward declaration io_uring/io-wq: don't grab wq->lock for worker activation io_uring/io-wq: reduce frequency of acct->lock acquisitions io_uring/io-wq: don't gate worker wake up success on wake_up_process() io_uring/sqpoll: fix io-wq affinity when IORING_SETUP_SQPOLL is used Kees Cook (1): io_uring/rsrc: Annotate struct io_mapped_ubuf with __counted_by Pavel Begunkov (26): io_uring: fix drain stalls by invalid SQE io_uring: fix false positive KASAN warnings io_uring: kill io_uring userspace examples io_uring: break iopolling on signal io_uring/net: don't overflow multishot accept io_uring/net: don't overflow multishot recv io_uring: open code io_fill_cqe_req() io_uring: remove return from io_req_cqe_overflow() io_uring: never overflow io_aux_cqe io_uring/rsrc: keep one global dummy_ubuf io_uring: simplify io_run_task_work_sig return io_uring: improve cqe !tracing hot path io_uring: cqe init hardening io_uring: simplify big_cqe handling io_uring: refactor __io_get_cqe() io_uring: optimise extra io_get_cqe null check io_uring: reorder cqring_flush and wakeups io_uring: merge iopoll and normal completion paths io_uring: force inline io_fill_cqe_req io_uring: compact SQ/CQ heads/tails io_uring: add option to remove SQ indirection io_uring: move non aligned field to the end io_uring: banish non-hot data to end of io_ring_ctx io_uring: separate task_work/waiting cache line io_uring: move multishot cqe cache in ctx io_uring: move iopoll ctx fields around Yue Haibing (1): io_uring/rsrc: Remove unused declaration io_rsrc_put_tw() MAINTAINERS | 1 - include/linux/io_uring.h | 6 + include/linux/io_uring_types.h | 129 ++++----- include/uapi/linux/io_uring.h | 21 +- io_uring/cancel.c | 60 +++- io_uring/cancel.h | 3 +- io_uring/fdinfo.c | 18 +- io_uring/io-wq.c | 70 +++-- io_uring/io-wq.h | 2 +- io_uring/io_uring.c | 225 ++++++++------- io_uring/io_uring.h | 79 ++---- io_uring/net.c | 8 +- io_uring/poll.c | 21 +- io_uring/rsrc.c | 14 +- io_uring/rsrc.h | 3 +- io_uring/rw.c | 24 +- io_uring/splice.c | 4 +- io_uring/sqpoll.c | 15 + io_uring/sqpoll.h | 1 + io_uring/timeout.c | 20 +- io_uring/uring_cmd.c | 33 ++- net/socket.c | 2 + tools/io_uring/Makefile | 18 -- tools/io_uring/README | 29 -- tools/io_uring/barrier.h | 16 -- tools/io_uring/io_uring-bench.c | 592 ---------------------------------------- tools/io_uring/io_uring-cp.c | 283 ------------------- tools/io_uring/liburing.h | 187 ------------- tools/io_uring/queue.c | 156 ----------- tools/io_uring/setup.c | 107 -------- tools/io_uring/syscall.c | 52 ---- 31 files changed, 432 insertions(+), 1767 deletions(-) delete mode 100644 tools/io_uring/Makefile delete mode 100644 tools/io_uring/README delete mode 100644 tools/io_uring/barrier.h delete mode 100644 tools/io_uring/io_uring-bench.c delete mode 100644 tools/io_uring/io_uring-cp.c delete mode 100644 tools/io_uring/liburing.h delete mode 100644 tools/io_uring/queue.c delete mode 100644 tools/io_uring/setup.c delete mode 100644 tools/io_uring/syscall.c -- Jens Axboe