On 11/23/22 06:27, Ankit Kumar wrote:
When sqthread_poll is specified for io_uring and io_uring_cmd I/O engines, fio reports garbage value for completion latencies. This is because the issue time was not recorded. This adds a change for that. As the submission latency for sqthread poll is really just the time it takes to fill in the SQ ring entries and any syscall required to wake up the idle kernel thread. So there is really no need to report those. Also Updated the documentation to reflect the changes. FIO command used to test: fio --name=test --size=1M --rw=randread --ioengine=io_uring --sqthread_poll=1 Latencies reported before the change: clat (msec): min=7543.5k, max=7543.5k, avg=7543493.06, stdev= 8.30 lat (usec): min=104, max=5070, avg=131.54, stdev=309.92 clat percentiles (msec): | 1.00th=[17113], 5.00th=[17113], 10.00th=[17113], 20.00th=[17113], | 30.00th=[17113], 40.00th=[17113], 50.00th=[17113], 60.00th=[17113], | 70.00th=[17113], 80.00th=[17113], 90.00th=[17113], 95.00th=[17113], | 99.00th=[17113], 99.50th=[17113], 99.90th=[17113], 99.95th=[17113], | 99.99th=[17113] lat (msec) : >=2000=100.00% latency reported after the changes: clat (usec): min=106, max=5122, avg=132.95, stdev=313.07 lat (usec): min=106, max=5125, avg=133.11, stdev=313.27 clat percentiles (usec): | 1.00th=[ 108], 5.00th=[ 108], 10.00th=[ 109], 20.00th=[ 111], | 30.00th=[ 112], 40.00th=[ 113], 50.00th=[ 114], 60.00th=[ 115], | 70.00th=[ 116], 80.00th=[ 118], 90.00th=[ 120], 95.00th=[ 121], | 99.00th=[ 122], 99.50th=[ 122], 99.90th=[ 5145], 99.95th=[ 5145], | 99.99th=[ 5145] lat (usec) : 250=99.61% lat (msec) : 10=0.39% This fixes the issue: https://github.com/axboe/fio/issues/1484 Ankit Kumar (2): engines:io_uring: fix clat calculation for sqthread poll doc: update about sqthread_poll HOWTO.rst | 4 +++- engines/io_uring.c | 20 ++++++++++++++++++++ fio.1 | 4 +++- 3 files changed, 26 insertions(+), 2 deletions(-)
Applied. Thanks.