]> 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)
committerJens Axboe <axboe@kernel.dk>
Fri, 28 Mar 2025 22:15:43 +0000 (16:15 -0600)
commitd796cea7b9f33b6315362f504b15fcc26d678493
tree030c55ec88f3f841b92703951ef2ee1af4b40747
parent17970209167d521da2f48d45a4242a57fd39d223
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