Enable completion latency stat collection on verify
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 41edcf1a8ff820e09d915a4e69ceca11d8bb619c..c6304a7ca2ed7bf27b65df9ce844efa88f221534 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -524,16 +524,7 @@ ioengine=str       Defines how the job issues io to the file. The following
                        libaio  Linux native asynchronous io. Note that Linux
                                may only support queued behaviour with
                                non-buffered IO (set direct=1 or buffered=0).
-                               This engine also has a sub-option,
-                               userspace_reap. To set it, use
-                               ioengine=libaio:userspace_reap. Normally, with
-                               the libaio engine in use, fio will use the
-                               io_getevents system call to reap newly returned
-                               events. With this flag turned on, the AIO ring
-                               will be read directly from user-space to reap
-                               events. The reaping mode is only enabled when
-                               polling for a minimum of 0 events (eg when
-                               iodepth_batch_complete=0).
+                               This engine defines engine specific options.
 
                        posixaio glibc posix asynchronous io.
 
@@ -562,16 +553,16 @@ ioengine=str      Defines how the job issues io to the file. The following
                                itself and for debugging/testing purposes.
 
                        net     Transfer over the network to given host:port.
-                               'filename' must be set appropriately to
-                               filename=host/port/protocol regardless of send
-                               or receive, if the latter only the port
-                               argument is used. 'host' may be an IP address
-                               or hostname, port is the port number to be used,
-                               and protocol may be 'udp' or 'tcp'. If no
-                               protocol is given, TCP is used.
+                               Depending on the protocol used, the hostname,
+                               port, listen and filename options are used to
+                               specify what sort of connection to make, while
+                               the protocol option determines which protocol
+                               will be used.
+                               This engine defines engine specific options.
 
                        netsplice Like net, but uses splice/vmsplice to
                                map data and send/receive.
+                               This engine defines engine specific options.
 
                        cpuio   Doesn't transfer any data, but burns CPU
                                cycles according to the cpuload= and
@@ -1110,6 +1101,18 @@ write_lat_log=str Same as write_bw_log, except that this option stores io
 write_bw_log=str If given, write an IOPS log of the jobs in this job
                file. See write_bw_log.
 
+write_iops_log=str Same as write_bw_log, but writes IOPS. If no filename is
+               given with this option, the default filename of
+               "jobname_type.log" is used. Even if the filename is given,
+               fio will still append the type of log.
+
+log_avg_msec=int By default, fio will log an entry in the iops, latency,
+               or bw log for every IO that completes. When writing to the
+               disk log, that can quickly grow to a very large size. Setting
+               this option makes fio average the each log entry over the
+               specified period of time, reducing the resolution of the log.
+               Defaults to 0.
+
 lockmem=int    Pin down the specified amount of memory with mlock(2). Can
                potentially be used instead of removing memory or booting
                with less memory to simulate a smaller amount of memory.
@@ -1179,7 +1182,7 @@ gtod_cpu=int      Sometimes it's cheaper to dedicate a single thread of
                uses. Fio will manually clear it from the CPU mask of other
                jobs.
 
-continue_on_error=bool Normally fio will exit the job on the first observed
+continue_on_error=str  Normally fio will exit the job on the first observed
                failure. If this option is set, fio will continue the job when
                there is a 'non-fatal error' (EIO or EILSEQ) until the runtime
                is exceeded or the I/O size specified is completed. If this
@@ -1188,6 +1191,24 @@ continue_on_error=bool   Normally fio will exit the job on the first observed
                given in the stats is the first error that was hit during the
                run.
 
+               The allowed values are:
+
+                       none    Exit on any IO or verify errors.
+
+                       read    Continue on read errors, exit on all others.
+
+                       write   Continue on write errors, exit on all others.
+
+                       io      Continue on any IO error, exit on all others.
+
+                       verify  Continue on verify errors, exit on all others.
+
+                       all     Continue on all errors.
+
+                       0               Backward-compatible alias for 'none'.
+
+                       1               Backward-compatible alias for 'all'.
+
 cgroup=str     Add job to this control group. If it doesn't exist, it will
                be created. The system must have a mounted cgroup blkio
                mount point for this to work. If your system doesn't have it
@@ -1210,6 +1231,45 @@ uid=int          Instead of running as the invoking user, set the user ID to
 
 gid=int                Set group ID, see uid.
 
+In addition, there are some parameters which are only valid when a specific
+ioengine is in use. These are used identically to normal parameters, with the
+caveat that when used on the command line, they must come after the ioengine
+that defines them is selected.
+
+[libaio] userspace_reap Normally, with the libaio engine in use, fio will use
+               the io_getevents system call to reap newly returned events.
+               With this flag turned on, the AIO ring will be read directly
+               from user-space to reap events. The reaping mode is only
+               enabled when polling for a minimum of 0 events (eg when
+               iodepth_batch_complete=0).
+
+[netsplice] hostname=str
+[net] hostname=str The host name or IP address to use for TCP or UDP based IO.
+               If the job is a TCP listener or UDP reader, the hostname is not
+               used and must be omitted.
+
+[netsplice] port=int
+[net] port=int The TCP or UDP port to bind to or connect to.
+
+[netsplice] protocol=str
+[netsplice] proto=str
+[net] protocol=str
+[net] proto=str        The network protocol to use. Accepted values are:
+
+                       tcp     Transmission control protocol
+                       udp     Unreliable datagram protocol
+                       unix    UNIX domain socket
+
+               When the protocol is TCP or UDP, the port must also be given,
+               as well as the hostname if the job is a TCP listener or UDP
+               reader. For unix sockets, the normal filename option should be
+               used and the port is invalid.
+
+[net] listen   For TCP network connections, tell fio to listen for incoming
+               connections rather than initiating an outgoing connection. The
+               hostname must be omitted if this option is used.
+
+
 6.0 Interpreting the output
 ---------------------------