From d6f936d1172a56c28b225d8a6858283d60d57f92 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Fri, 21 Oct 2022 17:02:36 +0530 Subject: [PATCH] io_uring: update documentation and small fix for sqthread_poll type for sqthread_poll should be FIO_OPT_STR_SET, as this only requires it to be set. This also fixes the issue: https://github.com/axboe/fio/issues/927 Update the HOWTO and man page to specify the missing types for all the remaining io_uring options. Signed-off-by: Ankit Kumar Signed-off-by: Vincent Fu --- HOWTO.rst | 6 +++--- engines/io_uring.c | 2 +- fio.1 | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/HOWTO.rst b/HOWTO.rst index 0fb5593e..e796f961 100644 --- a/HOWTO.rst +++ b/HOWTO.rst @@ -2274,7 +2274,7 @@ with the caveat that when used on the command line, they must come after the map and release for each IO. This is more efficient, and reduces the IO latency as well. -.. option:: nonvectored : [io_uring] [io_uring_cmd] +.. option:: nonvectored=int : [io_uring] [io_uring_cmd] With this option, fio will use non-vectored read/write commands, where address must contain the address directly. Default is -1. @@ -2301,7 +2301,7 @@ with the caveat that when used on the command line, they must come after the This frees up cycles for fio, at the cost of using more CPU in the system. -.. option:: sqthread_poll_cpu : [io_uring] [io_uring_cmd] +.. option:: sqthread_poll_cpu=int : [io_uring] [io_uring_cmd] When :option:`sqthread_poll` is set, this option provides a way to define which CPU should be used for the polling thread. @@ -2351,7 +2351,7 @@ with the caveat that when used on the command line, they must come after the When hipri is set this determines the probability of a pvsync2 I/O being high priority. The default is 100%. -.. option:: nowait : [pvsync2] [libaio] [io_uring] +.. option:: nowait=bool : [pvsync2] [libaio] [io_uring] [io_uring_cmd] By default if a request cannot be executed immediately (e.g. resource starvation, waiting on locks) it is queued and the initiating process will be blocked until diff --git a/engines/io_uring.c b/engines/io_uring.c index 6906e0a4..3c656b77 100644 --- a/engines/io_uring.c +++ b/engines/io_uring.c @@ -226,7 +226,7 @@ static struct fio_option options[] = { { .name = "sqthread_poll", .lname = "Kernel SQ thread polling", - .type = FIO_OPT_INT, + .type = FIO_OPT_STR_SET, .off1 = offsetof(struct ioring_options, sqpoll_thread), .help = "Offload submission/completion to kernel thread", .category = FIO_OPT_C_ENGINE, diff --git a/fio.1 b/fio.1 index 4324a975..9e33c9e1 100644 --- a/fio.1 +++ b/fio.1 @@ -2063,7 +2063,7 @@ release them when IO is done. If this option is set, the pages are pre-mapped before IO is started. This eliminates the need to map and release for each IO. This is more efficient, and reduces the IO latency as well. .TP -.BI (io_uring,io_uring_cmd)nonvectored +.BI (io_uring,io_uring_cmd)nonvectored \fR=\fPint With this option, fio will use non-vectored read/write commands, where address must contain the address directly. Default is -1. .TP @@ -2092,7 +2092,7 @@ available items in the SQ ring. If this option is set, the act of submitting IO will be done by a polling thread in the kernel. This frees up cycles for fio, at the cost of using more CPU in the system. .TP -.BI (io_uring,io_uring_cmd)sqthread_poll_cpu +.BI (io_uring,io_uring_cmd)sqthread_poll_cpu \fR=\fPint When `sqthread_poll` is set, this option provides a way to define which CPU should be used for the polling thread. .TP @@ -2115,7 +2115,7 @@ than normal. When hipri is set this determines the probability of a pvsync2 I/O being high priority. The default is 100%. .TP -.BI (pvsync2,libaio,io_uring)nowait +.BI (pvsync2,libaio,io_uring,io_uring_cmd)nowait \fR=\fPbool By default if a request cannot be executed immediately (e.g. resource starvation, waiting on locks) it is queued and the initiating process will be blocked until the required resource becomes free. -- 2.25.1