public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: io-uring <io-uring@vger.kernel.org>
Subject: [GIT PULL] io_uring updates for 6.19-rc1
Date: Mon, 1 Dec 2025 08:51:46 -0700	[thread overview]
Message-ID: <973ff83d-995b-4b0a-a800-3941aa0082ef@kernel.dk> (raw)

Hi Linus,

Here are the io_uring changes queued for the 6.19 kernel release. This
pull request contains:

- Unify how task_work cancelations are detected, placing it in the
  task_work running state rather than needing to check the task state.

- Series cleaning up and moving the cancelation code to where it
  belongs, in cancel.c.

- Cleanup of waitid argument handling.

- Cleanup of futex argument handling.

- Add support for mixed sized SQEs. 6.18 added support for mixed sized
  CQEs, improving flexibility and efficiency of workloads that need big
  CQEs. This adds similar support for SQEs, where the occasional need
  for a 128b SQE doesn't necessitate having all SQEs be 128b in size.

- Introduce zcrx and SQ/CQ layout queries. The former returns what zcrx
  features are available. And both return the ring size information to
  help with allocation size calculation for user provided rings like
  IORING_SETUP_NO_MMAP and IORING_MEM_REGION_TYPE_USER

- Zcrx updates for 6.19. It includes a bunch of small patches,
  IORING_REGISTER_ZCRX_CTRL and RQ flushing and David's work on sharing
  zcrx b/w multiple io_uring instances.

- Series cleaning up ring initializations, notable deduplicating ring
  size and offset calculations. It also moves most of the checking
  before doing any allocations, making the code simpler.

- Add support for getsockname and getpeername, which is mostly a trivial
  hookup after a bit of refactoring on the networking side.

- Various fixes and cleanups.

Please pull!


The following changes since commit 2d0e88f3fd1dcb37072d499c36162baf5b009d41:

  io_uring/rsrc: don't use blk_rq_nr_phys_segments() as number of bvecs (2025-11-12 08:25:33 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git tags/for-6.19/io_uring-20251201

for you to fetch changes up to 5d24321e4c159088604512d7a5c5cf634d23e01a:

  io_uring: Introduce getsockname io_uring cmd (2025-11-26 13:45:23 -0700)

----------------------------------------------------------------
for-6.19/io_uring-20251201

----------------------------------------------------------------
Alok Tiwari (1):
      io_uring: fix typos and comment wording

Caleb Sander Mateos (5):
      io_uring: only call io_should_terminate_tw() once for ctx
      io_uring: add wrapper type for io_req_tw_func_t arg
      io_uring/uring_cmd: avoid double indirect call in task work dispatch
      io_uring/memmap: return bool from io_mem_alloc_compound()
      io_uring/query: drop unused io_handle_query_entry() ctx arg

David Wei (12):
      io_uring/memmap: remove unneeded io_ring_ctx arg
      io_uring/memmap: refactor io_free_region() to take user_struct param
      io_uring/rsrc: refactor io_{un}account_mem() to take {user,mm}_struct param
      io_uring/zcrx: add io_zcrx_ifq arg to io_zcrx_free_area()
      io_uring/zcrx: add user_struct and mm_struct to io_zcrx_ifq
      io_uring/zcrx: move io_unregister_zcrx_ifqs() down
      io_uring/zcrx: reverse ifq refcount
      net: export netdev_get_by_index_lock()
      io_uring/zcrx: call netdev_queue_get_dma_dev() under instance lock
      io_uring/zcrx: move io_zcrx_scrub() and dependencies up
      io_uring/zcrx: add io_fill_zcrx_offsets()
      io_uring/zcrx: share an ifq between rings

Gabriel Krisman Bertazi (3):
      socket: Unify getsockname and getpeername implementation
      socket: Split out a getsockname helper for io_uring
      io_uring: Introduce getsockname io_uring cmd

Jens Axboe (17):
      io_uring: unify task_work cancelation checks
      io_uring/waitid: have io_waitid_complete() remove wait queue entry
      io_uring/waitid: use io_waitid_remove_wq() consistently
      io_uring/fdinfo: cap SQ iteration at max SQ entries
      io_uring/fdinfo: validate opcode before checking if it's an 128b one
      io_uring/slist: remove unused wq list splice helpers
      io_uring/rsrc: use get/put_user() for integer copy
      io_uring/memmap: remove dead io_create_region_mmap_safe() declaration
      io_uring/cancel: move request/task cancelation logic into cancel.c
      io_uring/cancel: move __io_uring_cancel() into cancel.c
      io_uring/cancel: move cancelation code from io_uring.c to cancel.c
      io_uring/futex: move futexv async data handling to struct io_futexv_data
      io_uring/futex: move futexv owned status to struct io_futexv_data
      Merge branch 'io_uring-6.18' into for-6.19/io_uring
      Merge branch 'zcrx-query-6.19' into for-6.19/io_uring
      Merge branch 'zcrx-updates-6.19' into for-6.19/io_uring
      io_uring/register: use correct location for io_rings_layout

Joanne Koong (1):
      io_uring/kbuf: remove obsolete buf_nr_pages and update comments

Keith Busch (2):
      io_uring: add support for IORING_SETUP_SQE_MIXED
      io_uring/fdinfo: show SQEs for no array setup

Pavel Begunkov (29):
      io_uring: deduplicate array_size in io_allocate_scq_urings
      io_uring: sanity check sizes before attempting allocation
      io_uring: use no mmap safe region helpers on resizing
      io_uring: remove extra args from io_register_free_rings
      io_uring: don't free never created regions
      io_uring/kbuf: use io_create_region for kbuf creation
      io_uring: only publish fully handled mem region
      io_uring: check for user passing 0 nr_submit
      io_uring: use WRITE_ONCE for user shared memory
      io_uring/query: buffer size calculations with a union
      io_uring: add helper calculating region byte size
      io_uring: pass sq entries in the params struct
      io_uring: use mem_is_zero to check ring params
      io_uring: move flags check to io_uring_sanitise_params
      io_uring: refactor rings_size nosqarray handling
      io_uring: use size_add helpers for ring offsets
      io_uring: convert params to pointer in ring reisze
      io_uring: introduce struct io_ctx_config
      io_uring: keep ring laoyut in a structure
      io_uring: pre-calculate scq layout
      io_uring: move cq/sq user offset init around
      io_uring/query: introduce zcrx query
      io_uring/query: introduce rings info query
      io_uring/zcrx: convert to use netmem_desc
      io_uring/zcrx: elide passing msg flags
      io_uring/zcrx: introduce IORING_REGISTER_ZCRX_CTRL
      io_uring/zcrx: add sync refill queue flushing
      io_uring/zcrx: count zcrx users
      io_uring/zcrx: export zcrx via a file

Pedro Demarchi Gomes (1):
      io_uring/zcrx: use folio_nr_pages() instead of shift operation

 block/ioctl.c                       |   6 +-
 drivers/block/ublk_drv.c            |  22 +-
 drivers/nvme/host/ioctl.c           |   7 +-
 fs/btrfs/ioctl.c                    |   5 +-
 fs/fuse/dev_uring.c                 |   7 +-
 include/linux/io_uring/cmd.h        |  22 +-
 include/linux/io_uring_types.h      |  12 +-
 include/linux/netdevice.h           |   1 +
 include/linux/socket.h              |   6 +-
 include/uapi/linux/io_uring.h       |  43 +++
 include/uapi/linux/io_uring/query.h |  24 ++
 io_uring/cancel.c                   | 270 ++++++++++++++
 io_uring/cancel.h                   |   8 +-
 io_uring/cmd_net.c                  |  22 ++
 io_uring/fdinfo.c                   |  37 +-
 io_uring/futex.c                    |  57 +--
 io_uring/io_uring.c                 | 547 ++++++++--------------------
 io_uring/io_uring.h                 |  63 ++--
 io_uring/kbuf.c                     |   6 +-
 io_uring/kbuf.h                     |   5 +-
 io_uring/memmap.c                   |  59 +--
 io_uring/memmap.h                   |  24 +-
 io_uring/msg_ring.c                 |   3 +-
 io_uring/net.c                      |   7 +-
 io_uring/notif.c                    |   7 +-
 io_uring/opdef.c                    |  26 ++
 io_uring/opdef.h                    |   2 +
 io_uring/poll.c                     |  13 +-
 io_uring/poll.h                     |   2 +-
 io_uring/query.c                    |  55 ++-
 io_uring/query.h                    |   2 +-
 io_uring/register.c                 | 105 +++---
 io_uring/rsrc.c                     |  30 +-
 io_uring/rsrc.h                     |   6 +-
 io_uring/rw.c                       |  11 +-
 io_uring/rw.h                       |   2 +-
 io_uring/slist.h                    |  18 -
 io_uring/sqpoll.c                   |   1 +
 io_uring/timeout.c                  |  20 +-
 io_uring/uring_cmd.c                |  34 +-
 io_uring/waitid.c                   |  48 ++-
 io_uring/zcrx.c                     | 421 ++++++++++++++++-----
 io_uring/zcrx.h                     |  16 +-
 net/compat.c                        |   4 +-
 net/core/dev.h                      |   1 -
 net/socket.c                        |  67 ++--
 46 files changed, 1298 insertions(+), 856 deletions(-)

-- 
Jens Axboe


             reply	other threads:[~2025-12-01 15:51 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-01 15:51 Jens Axboe [this message]
2025-12-04  4:01 ` [GIT PULL] io_uring updates for 6.19-rc1 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=973ff83d-995b-4b0a-a800-3941aa0082ef@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox