Recent changes (master)
The following changes since commit fc220349e45144360917db48010b503a9874930d:
Merge branch 'dev' of https://github.com/smartxworks/fio (2019-07-12 10:44:45 -0600)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to 029b42ace698eae477c5e261d2f82b191507526b:
Document io_uring feature (2019-07-26 09:53:43 -0600)
----------------------------------------------------------------
Jens Axboe (2):
engines/libaio: remove remnants of abandoned aio features Document io_uring feature
HOWTO | 34 ++++++++++++++++++++++++++++++++ engines/libaio.c | 60 +++----------------------------------------------------- fio.1 | 23 ++++++++++++++++++++++ 3 files changed, 60 insertions(+), 57 deletions(-)
---
Diff of recent changes:
HOWTO +34 -0
@@ -1805,6 +1805,11 @@ I/O engine **pvsync2** Basic :manpage:`preadv2(2)` or :manpage:`pwritev2(2)` I/O. + **io_uring** + Fast Linux native asynchronous I/O. Supports async IO + for both direct and buffered IO. + This engine defines engine specific options. + **libaio** Linux native asynchronous I/O. Note that Linux may only support queued behavior with non-buffered I/O (set ``direct=1`` or
@@ -2002,6 +2007,35 @@ In addition, there are some parameters which are only valid when a specific with the caveat that when used on the command line, they must come after the :option:`ioengine` that defines them is selected. +.. option:: hipri : [io_uring] + + If this option is set, fio will attempt to use polled IO completions. + Normal IO completions generate interrupts to signal the completion of + IO, polled completions do not. Hence they are require active reaping + by the application. The benefits are more efficient IO for high IOPS + scenarios, and lower latencies for low queue depth IO. + +.. option:: fixedbufs : [io_uring] + + If fio is asked to do direct IO, then Linux will map pages for each + IO call, and 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. + +.. option:: sqthread_poll : [io_uring] + + Normally fio will submit IO by issuing a system call to notify the + kernel of 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. + +.. option:: sqthread_poll_cpu : [io_uring] + + When :option:`sqthread_poll` is set, this option provides a way to + define which CPU should be used for the polling thread. + .. option:: userspace_reap : [libaio] Normally, with the libaio engine in use, fio will use the
engines/libaio.c +3 -57
93 lines not on this page · raw message
fio.1 +23 -0
@@ -1762,6 +1762,29 @@ In addition, there are some parameters which are only valid when a specific with the caveat that when used on the command line, they must come after the \fBioengine\fR that defines them is selected. .TP +.BI (io_uring)hipri +If this option is set, fio will attempt to use polled IO completions. Normal IO +completions generate interrupts to signal the completion of IO, polled +completions do not. Hence they are require active reaping by the application. +The benefits are more efficient IO for high IOPS scenarios, and lower latencies +for low queue depth IO. +.TP +.BI (io_uring)fixedbufs +If fio is asked to do direct IO, then Linux will map pages for each IO call, and +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)sqthread_poll +Normally fio will submit IO by issuing a system call to notify the kernel of +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)sqthread_poll_cpu +When `sqthread_poll` is set, this option provides a way to define which CPU +should be used for the polling thread. +.TP .BI (libaio)userspace_reap Normally, with the libaio engine in use, fio will use the \fBio_getevents\fR\|(3) system call to reap newly returned events. With