Re: [PATCH v2] t/io_uring: Vectored fixed buffer test support for nvme passthrough path

Pavel Begunkov <[email protected]> Thu, 18 Sep 2025 10:40:51 +0100
Newsgroups org.kernel.vger.fio
Message-ID <[email protected]>
On 9/17/25 07:58, Xiaobing Li wrote:
> The current kernel NVMe passthrough path already supports vectored IO
> when using fixed buffers, but fio has not yet adapted it. This patch
> aims to add a corresponding test interface in fio.

Great to have, and good to see that the performance impact is
not noticeable. It'd also be nice to add support for vectored
OP_READV with registered buffers, unless I'm missing sth and
it's already enabled.

> 
> Test results:
> 
> taskset -c 1 t/io_uring -b512 -d64 -c2 -s2 -p1 -F1 -B1 -O0 -n1 -V1 -u1 -r4 /dev/ng1n1
> submitter=0, tid=6179, file=/dev/ng1n1, nfiles=1, node=-1
> polled=1, fixedbufs=1, register_files=1, buffered=1, QD=64
> Engine=io_uring, sq_ring=64, cq_ring=64
> IOPS=289.78K, BW=141MiB/s, IOS/call=1/1
> IOPS=294.68K, BW=143MiB/s, IOS/call=1/1
> IOPS=295.26K, BW=144MiB/s, IOS/call=1/1
> Exiting on timeout
> Maximum IOPS=295.26K
> 
> taskset -c 1 t/io_uring -b512 -d64 -c2 -s2 -p1 -F1 -B1 -O0 -n1 -V0 -u1 -r4 /dev/ng1n1
> submitter=0, tid=6183, file=/dev/ng1n1, nfiles=1, node=-1
> polled=1, fixedbufs=1, register_files=1, buffered=1, QD=64
> Engine=io_uring, sq_ring=64, cq_ring=64
> IOPS=292.31K, BW=142MiB/s, IOS/call=1/1
> IOPS=295.79K, BW=144MiB/s, IOS/call=1/1
> IOPS=290.78K, BW=141MiB/s, IOS/call=1/1
> Exiting on timeout
> Maximum IOPS=295.79K
> 
> Signed-off-by: Xiaobing Li <[email protected]>
-- 
Pavel Begunkov