public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCHv3 0/3]
@ 2025-09-24 15:12 Keith Busch
  2025-09-24 15:12 ` [PATCHv3 1/3] Add support IORING_SETUP_SQE_MIXED Keith Busch
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Keith Busch @ 2025-09-24 15:12 UTC (permalink / raw)
  To: io-uring; +Cc: axboe, csander, ming.lei, Keith Busch

From: Keith Busch <kbusch@kernel.org>

Previous version:

  https://lore.kernel.org/io-uring/20250904192716.3064736-1-kbusch@meta.com/

The CQ supports mixed size entries, so why not for SQ's too? There are
use cases that currently allocate different queues just to keep these
things separated, but we can efficiently handle both cases in a single
ring.

Changes since v2:

 - Define 128B opcodes to be used on mixed SQs. This is done instead of
   using the last SQE flags bit to generically identify a command as
   such. The new opcodes are valid only on a mixed SQ.

 - Fixed up the accounting of sqes left to dispatch. The big sqes on a
   mixed sq count for two entries, so previously would have fetched too
   many.

 - liburing won't bother submitting the nop-skip for the wrap-around
   condition if there are not enoungh free entries for the big-sqe.

kernel:

Keith Busch (1):
  io_uring: add support for IORING_SETUP_SQE_MIXED

 include/uapi/linux/io_uring.h |  8 ++++++++
 io_uring/fdinfo.c             | 34 +++++++++++++++++++++++++++-------
 io_uring/io_uring.c           | 27 +++++++++++++++++++++++----
 io_uring/io_uring.h           |  8 +++++---
 io_uring/opdef.c              | 26 ++++++++++++++++++++++++++
 io_uring/opdef.h              |  2 ++
 io_uring/register.c           |  2 +-
 io_uring/uring_cmd.c          | 12 ++++++++++--
 io_uring/uring_cmd.h          |  1 +
 9 files changed, 103 insertions(+), 17 deletions(-)

liburing:

Keith Busch (3):
  Add support IORING_SETUP_SQE_MIXED
  Add nop testing for IORING_SETUP_SQE_MIXED
  Add mixed sqe test for uring commands

 src/include/liburing.h          |  50 +++++++++++
 src/include/liburing/io_uring.h |  11 +++
 test/Makefile                   |   3 +
 test/sqe-mixed-bad-wrap.c       |  89 ++++++++++++++++++++
 test/sqe-mixed-nop.c            |  82 ++++++++++++++++++
 test/sqe-mixed-uring_cmd.c      | 142 ++++++++++++++++++++++++++++++++
 6 files changed, 377 insertions(+)
 create mode 100644 test/sqe-mixed-bad-wrap.c
 create mode 100644 test/sqe-mixed-nop.c
 create mode 100644 test/sqe-mixed-uring_cmd.c

-- 
2.47.3


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-09-25 18:44 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-24 15:12 [PATCHv3 0/3] Keith Busch
2025-09-24 15:12 ` [PATCHv3 1/3] Add support IORING_SETUP_SQE_MIXED Keith Busch
2025-09-24 20:20   ` Caleb Sander Mateos
2025-09-24 20:30     ` Keith Busch
2025-09-24 20:37       ` Caleb Sander Mateos
2025-09-24 15:12 ` [PATCHv3 1/1] io_uring: add support for IORING_SETUP_SQE_MIXED Keith Busch
2025-09-25 15:03   ` Jens Axboe
2025-09-25 18:21     ` Caleb Sander Mateos
2025-09-25 18:44       ` Jens Axboe
2025-09-24 15:12 ` [PATCHv3 2/3] Add nop testing " Keith Busch
2025-09-24 15:12 ` [PATCHv3 3/3] Add mixed sqe test for uring commands Keith Busch
2025-09-24 15:54 ` [PATCHv3 0/3] io_uring: mixed submission queue size support Keith Busch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox