[GIT PULL] io_uring updates for 7.3
Jens Axboe <[email protected]>
| Newsgroups | org.kernel.vger.io-uring |
|---|---|
| Message-ID | <[email protected]> |
Hi Linus,
Trying to get back to a regular schedule again post the summer break,
but alas this PR is later than I like to do them. Still early in the
merge window, but I always try to have them out on Sunday/Monday.
Anyways, here are the io_uring changes queued for 7.3. On top of the
usual cleanups and fixes, the bigger items in here are:
- zcrx work, most of it centered around adding dynamic area
provisioning, plus a bunch of prep and cleanups leading up to it:
scale refilling with large pages, coalesce same-niov RQEs on refill,
separate the RQ head/tail cache lines and cache the RQ tail, and
rework the area creation locking.
- Fix the futex inflight accounting so that only private futex waits
are marked inflight, and don't mark wake requests as inflight at all.
- Drop the custom iov copy in the buffer select prep and msg header
copy paths, using the generic helpers instead.
- Fix a folio size overflow in io_vec_fill_bvec(), and account the
pages a compound region really uses in the memmap path.
- Fix an iovec leak in uring_cmd when the async cmd isn't recycled,
skip the blocking task work for io_uring_cmd_issue_blocking(), and
don't skip completion for a synchronous multishot cmd
- Defer eventfd signaling when queued from a wakeup handler
- Fix io-wq worker accounting when canceling creation callbacks
- Annotate remote tasks for kcoverage
Note: you'll get a trivial merge conflict in
include/uapi/linux/io_uring/zcrx.h due to the rename changes that we
applied to 7.2 before this API was released, it was in the
io_uring-7.2-20260724 pull request I sent you.
Please pull!
The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:
Linux 7.2-rc1 (2026-06-28 12:01:31 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git tags/for-7.3/io_uring-20260819
for you to fetch changes up to 881dc9dd66d2367e7fe1be0f953a8837cb3b26a9:
io_uring: Add missing include for ITER_SOURCE and ITER_DEST (2026-08-18 17:13:53 -0600)
----------------------------------------------------------------
for-7.3/io_uring-20260819
----------------------------------------------------------------
Ali Ahmet Memis (2):
io_uring/rsrc: fix folio size overflow in io_vec_fill_bvec()
io_uring/memmap: account the pages a compound region really uses
Caleb Sander Mateos (1):
io_uring/uring_cmd: skip io_uring_cmd_issue_blocking() task work
Gabriel Krisman Bertazi (3):
io_uring/rw: Drop custom iov copy in io_iov_buffer_select_prep
io_uring/net: Drop custom iov copy in io_msg_copy_hdr
io_uring/net: Drop ddir argument from io_msg_copy_hdr
Jens Axboe (4):
io_uring/futex: don't mark futex wake requests as inflight
io_uring/futex: only mark private futex waits as inflight
io_uring: defer eventfd signaling when queued from a wakeup handler
io_uring/uring_cmd: don't skip completion for a synchronous multishot cmd
Mark Brown (1):
io_uring: Add missing include for ITER_SOURCE and ITER_DEST
Pavel Begunkov (16):
io_uring/zcrx: scale refilling with large pages
io_uring/zcrx: move RQ head/tail to separate cache lines
io_uring/zcrx: add RQ iterator
io_uring/zcrx: cache RQ tail
io_uring/zcrx: coalesce same-niov RQEs on refill
io_uring/zcrx: constify area_reg on import
io_urint/zcrx: narrow var scope in io_zcrx_recv_skb()
io_uring/zcrx: don't reload skb_shinfo
io_uring/zcrx: add helper for deriving area token
io_uring/zcrx: don't pass ifq_reg to area creation
io_uring/zcrx: split dmabuf unmap and release
io_uring/zcrx: unmap under netdev lock
io_uring/zcrx: move freelist lock to struct zcrx
io_uring/zcrx: keep array of areas
io_uring/zcrx: lock area creation with pp_lock
io_uring/zcrx: add dynamic area provisioning
Robert Femmer (1):
io_uring: annotate remote tasks for kcoverage
Vishnu Razdan (1):
io_uring/io-wq: fix worker accounting when canceling creation callbacks
Woraphat Khiaodaeng (1):
io_uring/cmd: fix iovec leak when the async cmd is not recycled
include/linux/io_uring_types.h | 11 +
include/uapi/linux/io_uring/zcrx.h | 7 +
io_uring/eventfd.c | 8 +-
io_uring/eventfd.h | 2 +-
io_uring/futex.c | 32 ++-
io_uring/futex.h | 1 +
io_uring/io-wq.c | 14 +-
io_uring/io_uring.c | 17 +-
io_uring/io_uring.h | 2 +-
io_uring/memmap.c | 37 +++-
io_uring/net.c | 75 ++-----
io_uring/opdef.c | 2 +-
io_uring/poll.c | 23 ++-
io_uring/query.c | 2 +-
io_uring/rsrc.c | 2 +-
io_uring/rw.c | 24 +--
io_uring/sqpoll.c | 7 +-
io_uring/tw.c | 2 +-
io_uring/uring_cmd.c | 10 +-
io_uring/waitid.c | 2 +-
io_uring/zcrx.c | 398 ++++++++++++++++++++++++++-----------
io_uring/zcrx.h | 15 +-
22 files changed, 448 insertions(+), 245 deletions(-)
--
Jens Axboe