[PATCH V2 00/11] ublk: cleanup & improvement & zc follow-up

Ming Lei
2025-03-27T09:51:35Z

Hello Jens,

The 1st two fixes ublk_abort_requests(), and adds comment on handling
ubq->canceling.

The 3rd ~ 5th patches are cleanup.

The 6th and 7th are zc-followup.

The 8th & 9th patch implements ->queue_rqs() and improves IOPS by > 10%.

The last two patches are self-test for ->queue_rqs() & segment parameter
change.

V2:
- use io_uring_cmd_to_pdu() (Uday)
- improve zc document (Caleb)
- consolidate segment parameter interface (Caleb)
- add reviewed-by
- add one fix and comment on ubq->canceling
- fix one hang bug in V2

Ming Lei (11):
ublk: make sure ubq->canceling is set when queue is frozen
ublk: comment on ubq->canceling handling in ublk_queue_rq()
ublk: remove two unused fields from 'struct ublk_queue'
ublk: add helper of ublk_need_map_io()
ublk: call io_uring_cmd_to_pdu to get uring_cmd pdu
ublk: add segment parameter
ublk: document zero copy feature
ublk: implement ->queue_rqs()
ublk: rename ublk_rq_task_work_cb as ublk_cmd_tw_cb
selftests: ublk: add more tests for covering MQ
selftests: ublk: add test for checking zero copy related parameter

Documentation/block/ublk.rst | 35 ++-
drivers/block/ublk_drv.c | 214 ++++++++++++++----
include/uapi/linux/ublk_cmd.h | 25 ++
tools/testing/selftests/ublk/Makefile | 4 +
tools/testing/selftests/ublk/null.c | 11 +-
tools/testing/selftests/ublk/test_common.sh | 6 +
.../testing/selftests/ublk/test_generic_02.sh | 44 ++++
.../testing/selftests/ublk/test_generic_03.sh | 28 +++
tools/testing/selftests/ublk/test_loop_01.sh | 14 +-
tools/testing/selftests/ublk/test_loop_03.sh | 14 +-
tools/testing/selftests/ublk/test_loop_05.sh | 28 +++
.../testing/selftests/ublk/test_stress_01.sh | 6 +-
.../testing/selftests/ublk/test_stress_02.sh | 6 +-
.../testing/selftests/ublk/test_stripe_01.sh | 14 +-
.../testing/selftests/ublk/test_stripe_03.sh | 30 +++
15 files changed, 397 insertions(+), 82 deletions(-)
create mode 100755 tools/testing/selftests/ublk/test_generic_02.sh
create mode 100755 tools/testing/selftests/ublk/test_generic_03.sh
create mode 100755 tools/testing/selftests/ublk/test_loop_05.sh
create mode 100755 tools/testing/selftests/ublk/test_stripe_03.sh

--
2.47.0