On 9/27/22 11:36 AM, Kanchan Joshi wrote: > Hi > > uring-cmd lacks the ability to leverage the pre-registered buffers. > This series adds that support in uring-cmd, and plumbs nvme passthrough > to work with it. > Patch 3 and 4 contains a bunch of general nvme cleanups, which got added > along the iterations. > > Using registered-buffers showed IOPS hike from 1.65M to 2.04M. > Without fixedbufs > ***************** > # taskset -c 0 t/io_uring -b512 -d128 -c32 -s32 -p1 -F1 -B0 -O0 -n1 -u1 /dev/ng0n1 > submitter=0, tid=2178, file=/dev/ng0n1, node=-1 > polled=1, fixedbufs=0/0, register_files=1, buffered=1, QD=128 > Engine=io_uring, sq_ring=128, cq_ring=128 > IOPS=1.63M, BW=796MiB/s, IOS/call=32/31 > IOPS=1.64M, BW=800MiB/s, IOS/call=32/32 > IOPS=1.64M, BW=801MiB/s, IOS/call=32/32 > IOPS=1.65M, BW=803MiB/s, IOS/call=32/31 > ^CExiting on signal > Maximum IOPS=1.65M > > With fixedbufs > ************** > # taskset -c 0 t/io_uring -b512 -d128 -c32 -s32 -p1 -F1 -B1 -O0 -n1 -u1 /dev/ng0n1 > submitter=0, tid=2180, file=/dev/ng0n1, node=-1 > polled=1, fixedbufs=1/0, register_files=1, buffered=1, QD=128 > Engine=io_uring, sq_ring=128, cq_ring=128 > IOPS=2.03M, BW=991MiB/s, IOS/call=32/31 > IOPS=2.04M, BW=998MiB/s, IOS/call=32/32 > IOPS=2.04M, BW=997MiB/s, IOS/call=32/31 > ^CExiting on signal > Maximum IOPS=2.04M Christoph, are you happy with the changes at this point? -- Jens Axboe