public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 00/16] ublk: cleanup for supporting batch IO command
@ 2025-07-08  1:17 Ming Lei
  2025-07-08  1:17 ` [PATCH V2 01/16] ublk: move fake timeout logic into __ublk_complete_rq() Ming Lei
                   ` (15 more replies)
  0 siblings, 16 replies; 23+ messages in thread
From: Ming Lei @ 2025-07-08  1:17 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/

V2:
	- remove one unnecessary check (Caleb Sander Mateos)
	- add reviewed-by tag
	- rebase on latest for-6.17/block

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                    | 248 +++++++++++---------
 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, 384 insertions(+), 321 deletions(-)
 create mode 100644 tools/testing/selftests/ublk/utils.h

-- 
2.47.0


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

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

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

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