All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/16] ublk: cleanup for supporting batch IO command
@ 2025-07-02  4:03 Ming Lei
  2025-07-02  4:03 ` [PATCH 01/16] ublk: move fake timeout logic into __ublk_complete_rq() Ming Lei
                   ` (15 more replies)
  0 siblings, 16 replies; 29+ messages in thread
From: Ming Lei @ 2025-07-02  4:03 UTC (permalink / raw)
  To: Jens Axboe, linux-block; +Cc: Uday Shankar, Caleb Sander Mateos, Ming Lei

Hi Jens,

The 1st 9 patches cleans ublk driver, and prepare for supporting
batch IO command which needs per-io lock.

The others are selftest cleanup, and prepare for supporting arbitrary
task context & ublk queue combination, which will be allowed with
batch IO feature.

ublk Batch IO feature introduction:

	- use per-queue multshot uring_cmd for fetching incoming io commands,
	and io command tag is saved to provided buffer

	- use per-queue uring_cmd for completing io command result, and io tag
	& result are filled in uring_cmd buffer

	- this way improves communication efficiency, also:

		- allows each queue to be handled in any pthread contexts, and each
		pthread context can handle any number of queues, and driver
		doesn't care ublk server context any more

		- help to apply blk-mq batch optimization in future

		- help to support io polling in future

	- github:

		https://github.com/ming1/linux/commits/ublk2-cmd-batch.v3/

Ming Lei (16):
  ublk: move fake timeout logic into __ublk_complete_rq()
  ublk: look up ublk task via its pid in timeout handler
  ublk: let ublk_fill_io_cmd() cover more things
  ublk: avoid to pass `struct ublksrv_io_cmd *` to
    ublk_commit_and_fetch()
  ublk: move auto buffer register handling into one dedicated helper
  ublk: store auto buffer register data into `struct ublk_io`
  ublk: add helper ublk_check_fetch_buf()
  ublk: remove ublk_commit_and_fetch()
  ublk: pass 'const struct ublk_io *' to ublk_[un]map_io()
  selftests: ublk: remove `tag` parameter of ->tgt_io_done()
  selftests: ublk: pass 'ublk_thread *' to ->queue_io() and
    ->tgt_io_done()
  selftests: ublk: pass 'ublk_thread *' to more common helpers
  selftests: ublk: remove ublk queue self-defined flags
  selftests: ublk: improve flags naming
  selftests: ublk: add helper ublk_handle_uring_cmd() for handle ublk
    command
  selftests: ublk: add utils.h

 drivers/block/ublk_drv.c                    | 249 +++++++++++---------
 tools/testing/selftests/ublk/fault_inject.c |  15 +-
 tools/testing/selftests/ublk/file_backed.c  |  32 +--
 tools/testing/selftests/ublk/kublk.c        | 140 ++++++-----
 tools/testing/selftests/ublk/kublk.h        | 135 ++++-------
 tools/testing/selftests/ublk/null.c         |  32 +--
 tools/testing/selftests/ublk/stripe.c       |  33 +--
 tools/testing/selftests/ublk/utils.h        |  70 ++++++
 8 files changed, 385 insertions(+), 321 deletions(-)
 create mode 100644 tools/testing/selftests/ublk/utils.h

-- 
2.47.0


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

end of thread, other threads:[~2025-07-13 14:14 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-02  4:03 [PATCH 00/16] ublk: cleanup for supporting batch IO command Ming Lei
2025-07-02  4:03 ` [PATCH 01/16] ublk: move fake timeout logic into __ublk_complete_rq() Ming Lei
2025-07-03  2:23   ` Caleb Sander Mateos
2025-07-02  4:03 ` [PATCH 02/16] ublk: look up ublk task via its pid in timeout handler Ming Lei
2025-07-02  4:03 ` [PATCH 03/16] ublk: let ublk_fill_io_cmd() cover more things Ming Lei
2025-07-02  4:03 ` [PATCH 04/16] ublk: avoid to pass `struct ublksrv_io_cmd *` to ublk_commit_and_fetch() Ming Lei
2025-07-03  2:33   ` Caleb Sander Mateos
2025-07-02  4:03 ` [PATCH 05/16] ublk: move auto buffer register handling into one dedicated helper Ming Lei
2025-07-03 20:19   ` Caleb Sander Mateos
2025-07-07  9:44     ` Ming Lei
2025-07-02  4:03 ` [PATCH 06/16] ublk: store auto buffer register data into `struct ublk_io` Ming Lei
2025-07-08 12:15   ` Caleb Sander Mateos
2025-07-02  4:03 ` [PATCH 07/16] ublk: add helper ublk_check_fetch_buf() Ming Lei
2025-07-08 12:31   ` Caleb Sander Mateos
2025-07-13 14:13     ` Ming Lei
2025-07-02  4:03 ` [PATCH 08/16] ublk: remove ublk_commit_and_fetch() Ming Lei
2025-07-08 13:27   ` Caleb Sander Mateos
2025-07-09 11:56     ` Ming Lei
2025-07-11 14:05       ` Caleb Sander Mateos
2025-07-13 14:14         ` Ming Lei
2025-07-02  4:03 ` [PATCH 09/16] ublk: pass 'const struct ublk_io *' to ublk_[un]map_io() Ming Lei
2025-07-08 13:29   ` Caleb Sander Mateos
2025-07-02  4:03 ` [PATCH 10/16] selftests: ublk: remove `tag` parameter of ->tgt_io_done() Ming Lei
2025-07-02  4:03 ` [PATCH 11/16] selftests: ublk: pass 'ublk_thread *' to ->queue_io() and ->tgt_io_done() Ming Lei
2025-07-02  4:03 ` [PATCH 12/16] selftests: ublk: pass 'ublk_thread *' to more common helpers Ming Lei
2025-07-02  4:03 ` [PATCH 13/16] selftests: ublk: remove ublk queue self-defined flags Ming Lei
2025-07-02  4:03 ` [PATCH 14/16] selftests: ublk: improve flags naming Ming Lei
2025-07-02  4:03 ` [PATCH 15/16] selftests: ublk: add helper ublk_handle_uring_cmd() for handle ublk command Ming Lei
2025-07-02  4:03 ` [PATCH 16/16] selftests: ublk: add utils.h Ming Lei

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.