public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Core io_uring changes for 7.0-rc1
@ 2026-02-06 18:57 Jens Axboe
  0 siblings, 0 replies; only message in thread
From: Jens Axboe @ 2026-02-06 18:57 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: io-uring

Hi Linus,

Doing a few separate branches for this release, and one depends on the
networking tree so coming later, but here are the core io_uring changes
queued up for the 7.0 kernel release. Nothing major in this series. This
pull request contains:

- Series cleaning up the IORING_SETUP_R_DISABLED and submitter task
  checking, mostly just in preparation for relaxing the locking for
  SINGLE_ISSUER in the future.

- Improve IOPOLL by using a doubly linked list to manage completions.
  Previously it was singly listed, which meant that to complete request
  N in the chain 0..N-1 had to have completed first. With a doubly
  linked list we can complete whatever request completes in that order,
  rather than need to wait for a consecutive range to be available. This
  reduces latencies.

- Small series improving the restriction setup and checking. Mostly in
  preparation for adding further features on top of that. Coming in a
  separate pull request.

- Split out task_work and wait handling into separate files. These are
  mostly nicely abstracted already, but still remained in the io_uring.c
  file which is on the larger side.

- Use GFP_KERNEL_ACCOUNT in a few more spots, where appropriate.

- Ensure even the idle io-wq worker exits if a task no longer has any
  rings open.

- Add support for a non-circular submission queue. By default, the SQ
  ring keeps moving around, even if only a few entries are used for each
  submission. This can be wasteful in terms of cachelines. If
  IORING_SETUP_SQ_REWIND is set for the ring when created, each
  submission will start at offset 0 instead of where we last left off
  doing submissions.

- Various little cleanups

Please pull!


The following changes since commit f8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da:

  Linux 6.19-rc3 (2025-12-28 13:24:26 -0800)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git tags/for-7.0/io_uring-20260206

for you to fetch changes up to 442ae406603a94f1a263654494f425302ceb0445:

  io_uring/kbuf: fix memory leak if io_buffer_add_list fails (2026-02-05 11:13:16 -0700)

----------------------------------------------------------------
for-7.0/io_uring-20260206

----------------------------------------------------------------
Caleb Sander Mateos (4):
      io_uring: use release-acquire ordering for IORING_SETUP_R_DISABLED
      io_uring/msg_ring: drop unnecessary submitter_task checks
      io_uring/register: drop io_register_enable_rings() submitter_task check
      io_uring/rsrc: take unsigned index in io_rsrc_node_lookup()

Gabriel Krisman Bertazi (1):
      io_uring: Trim out unused includes

Jens Axboe (21):
      io_uring: IOPOLL polling improvements
      io_uring/register: have io_parse_restrictions() return number of ops
      io_uring/register: have io_parse_restrictions() set restrictions enabled
      io_uring/register: set ctx->restricted when restrictions are parsed
      io_uring: move ctx->restricted check into io_check_restriction()
      io_uring: track restrictions separately for IORING_OP and IORING_REGISTER
      io_uring: fix IOPOLL with passthrough I/O
      io_uring/uring_cmd: explicitly disallow cancelations for IOPOLL
      io_uring/timeout: annotate data race in io_flush_timeouts()
      io_uring/eventfd: remove unused ctx->evfd_last_cq_tail member
      io_uring/sync: validate passed in offset
      io_uring: add IO_URING_EXIT_WAIT_MAX definition
      io_uring/io-wq: don't trigger hung task for syzbot craziness
      io_uring: split out task work code into tw.c
      io_uring: split out CQ waiting code into wait.c
      io_uring: fix bad indentation for setup flags if statement
      io_uring/io-wq: handle !sysctl_hung_task_timeout_secs
      io_uring/futex: use GFP_KERNEL_ACCOUNT for futex data allocation
      io_uring/rsrc: use GFP_KERNEL_ACCOUNT consistently
      io_uring/net: don't continue send bundle if poll was required for retry
      io_uring/kbuf: fix memory leak if io_buffer_add_list fails

Li Chen (2):
      io_uring/io-wq: add exit-on-idle state
      io_uring: allow io-wq workers to exit when unused

Pavel Begunkov (1):
      io_uring: introduce non-circular SQ

Tim Bird (1):
      io_uring: Add SPDX id lines to remaining source files

 include/linux/io_uring_types.h |  29 +-
 include/uapi/linux/io_uring.h  |  12 +
 io_uring/Makefile              |  14 +-
 io_uring/alloc_cache.h         |   2 +
 io_uring/cancel.c              |   5 +-
 io_uring/cmd_net.c             |   1 +
 io_uring/eventfd.h             |   1 +
 io_uring/filetable.h           |   1 -
 io_uring/futex.c               |   2 +-
 io_uring/io-wq.c               |  51 ++-
 io_uring/io-wq.h               |   2 +
 io_uring/io_uring.c            | 782 +++--------------------------------------
 io_uring/io_uring.h            |  90 +----
 io_uring/kbuf.c                |   5 +-
 io_uring/memmap.c              |   2 +-
 io_uring/memmap.h              |   1 +
 io_uring/mock_file.c           |   1 +
 io_uring/msg_ring.c            |  28 +-
 io_uring/net.c                 |   6 +-
 io_uring/notif.c               |   1 +
 io_uring/refs.h                |   1 +
 io_uring/register.c            |  42 ++-
 io_uring/rsrc.c                |   2 +-
 io_uring/rsrc.h                |   2 +-
 io_uring/rw.c                  |  33 +-
 io_uring/slist.h               |  13 +-
 io_uring/sqpoll.c              |   8 +-
 io_uring/sync.c                |   2 +
 io_uring/tctx.c                |  11 +
 io_uring/timeout.c             |   2 +-
 io_uring/tw.c                  | 355 +++++++++++++++++++
 io_uring/tw.h                  | 116 ++++++
 io_uring/uring_cmd.c           |   9 +
 io_uring/wait.c                | 308 ++++++++++++++++
 io_uring/wait.h                |  49 +++
 35 files changed, 1074 insertions(+), 915 deletions(-)
 create mode 100644 io_uring/tw.c
 create mode 100644 io_uring/tw.h
 create mode 100644 io_uring/wait.c
 create mode 100644 io_uring/wait.h

-- 
Jens Axboe


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

only message in thread, other threads:[~2026-02-06 18:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-06 18:57 [GIT PULL] Core io_uring changes for 7.0-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