]> www.infradead.org Git - nvme.git/commit
ublk: implement ->queue_rqs()
authorMing Lei <ming.lei@redhat.com>
Thu, 27 Mar 2025 09:51:17 +0000 (17:51 +0800)
committerKeith Busch <kbusch@kernel.org>
Mon, 31 Mar 2025 15:48:24 +0000 (08:48 -0700)
commit793faf01d8e0c0fe51c1821cf62c60f5aaa493bd
treeb53e07eb6cd0c3931c6f3c2e1733ed525e1b80e8
parenta9b9bc4a0f1d9c671d85e37a96ae330b1400359f
ublk: implement ->queue_rqs()

Implement ->queue_rqs() for improving perf in case of MQ.

In this way, we just need to call io_uring_cmd_complete_in_task() once for
whole IO batch, then both io_uring and ublk server can get exact batch from
ublk frontend.

Follows IOPS improvement:

- tests

tools/testing/selftests/ublk/kublk add -t null -q 2 [-z]

fio/t/io_uring -p0 /dev/ublkb0

- results:

more than 10% IOPS boost observed

Pass all ublk selftests, especially the io dispatch order test.

Cc: Uday Shankar <ushankar@purestorage.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250327095123.179113-9-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c