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