Add man page and HOWTO for io_submit_mode option
authorJens Axboe <axboe@fb.com>
Wed, 15 Apr 2015 15:58:58 +0000 (09:58 -0600)
committerJens Axboe <axboe@fb.com>
Wed, 15 Apr 2015 15:58:58 +0000 (09:58 -0600)
Signed-off-by: Jens Axboe <axboe@fb.com>
HOWTO
fio.1

diff --git a/HOWTO b/HOWTO
index 60eab243caadf8c473166c0d56816adb5ffbc397..bcc72b5882be95e4804a641f151cde13b214b432 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -820,6 +820,18 @@ iodepth_low=int    The low water mark indicating when to start filling
                after fio has filled the queue of 16 requests, it will let
                the depth drain down to 4 before starting to fill it again.
 
                after fio has filled the queue of 16 requests, it will let
                the depth drain down to 4 before starting to fill it again.
 
+io_submit_mode=str     This option controls how fio submits the IO to
+               the IO engine. The default is 'inline', which means that the
+               fio job threads submit and reap IO directly. If set to
+               'offload', the job threads will offload IO submission to a
+               dedicated pool of IO threads. This requires some coordination
+               and thus has a bit of extra overhead, especially for lower
+               queue depth IO where it can increase latencies. The benefit
+               is that fio can manage submission rates independently of
+               the device completion rates. This avoids skewed latency
+               reporting if IO gets back up on the device side (the
+               coordinated omission problem).
+
 direct=bool    If value is true, use non-buffered io. This is usually
                O_DIRECT. Note that ZFS on Solaris doesn't support direct io.
                On Windows the synchronous ioengines don't support direct io.
 direct=bool    If value is true, use non-buffered io. This is usually
                O_DIRECT. Note that ZFS on Solaris doesn't support direct io.
                On Windows the synchronous ioengines don't support direct io.
diff --git a/fio.1 b/fio.1
index 81bcf061d4768808559d65f77ce60b62d969fc9b..a77c71c3f3adaf9a306e0ac12ac2ce46ffcba058 100644 (file)
--- a/fio.1
+++ b/fio.1
@@ -694,6 +694,17 @@ cost of more retrieval system calls.
 Low watermark indicating when to start filling the queue again.  Default:
 \fBiodepth\fR. 
 .TP
 Low watermark indicating when to start filling the queue again.  Default:
 \fBiodepth\fR. 
 .TP
+.BI io_submit_mode \fR=\fPstr
+This option controls how fio submits the IO to the IO engine. The default is
+\fBinline\fR, which means that the fio job threads submit and reap IO directly.
+If set to \fBoffload\fR, the job threads will offload IO submission to a
+dedicated pool of IO threads. This requires some coordination and thus has a
+bit of extra overhead, especially for lower queue depth IO where it can
+increase latencies. The benefit is that fio can manage submission rates
+independently of the device completion rates. This avoids skewed latency
+reporting if IO gets back up on the device side (the coordinated omission
+problem).
+.TP
 .BI direct \fR=\fPbool
 If true, use non-buffered I/O (usually O_DIRECT).  Default: false.
 .TP
 .BI direct \fR=\fPbool
 If true, use non-buffered I/O (usually O_DIRECT).  Default: false.
 .TP