]> git.ipfire.org Git - thirdparty/linux.git/commit
block: plug attempts to batch allocate tags multiple times
authorXue He <xue01.he@samsung.com>
Tue, 18 Nov 2025 07:32:30 +0000 (07:32 +0000)
committerJens Axboe <axboe@kernel.dk>
Tue, 18 Nov 2025 21:59:41 +0000 (14:59 -0700)
commit152c331bcd805eddd520979c51cea46582e260fc
treeccb5a1dd26e6174d51ca03d3b3b7c4b4b3ea428a
parentf43fdeb9a368a5ff56b088b46edc245bd4b52cde
block: plug attempts to batch allocate tags multiple times

This patch aims to enable batch allocation of sufficient tags after
batch IO submission with plug mechanism, thereby avoiding the need for
frequent individual requests when the initial allocation is
insufficient.
-----------------------------------------------------------
HW:
16 CPUs/16 poll queues
Disk: Samsung PM9A3 Gen4 3.84T

CMD:
[global]
ioengine=io_uring
group_reporting=1
time_based=1
runtime=1m
refill_buffers=1
norandommap=1
randrepeat=0
fixedbufs=1
registerfiles=1
rw=randread
iodepth=128
iodepth_batch_submit=32
iodepth_batch_complete_min=32
iodepth_batch_complete_max=128
iodepth_low=32
bs=4k
numjobs=1
direct=1
hipri=1

[job1]
filename=/dev/nvme0n1
name=batch_test
------------------------------------------------------------
Perf:
base code: __blk_mq_alloc_requests() 1.47%
patch: __blk_mq_alloc_requests() 0.75%
------------------------------------------------------------

Signed-off-by: hexue <xue01.he@samsung.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c