Specifies when real-time ETA estimate should be printed. \fIwhen\fR may
be one of `always', `never' or `auto'.
.TP
+.BI \-\-section \fR=\fPsec
+Only run section \fIsec\fR from job file.
+.TP
.BI \-\-cmdhelp \fR=\fPcommand
Print help information for \fIcommand\fR. May be `all' for all commands.
.TP
+.BI \-\-debug \fR=\fPtype
+Enable verbose tracing of various fio actions. May be `all' for all types
+or individual types seperated by a comma (eg --debug=io,file). `help' will
+list all available tracing options.
+.TP
.B \-\-help
Display usage information and exit.
.TP
String: a sequence of alphanumeric characters.
.TP
.I int
-Integer: a whole number, possibly negative. If prefixed with `0x', the value
-is assumed to be base 16 (hexadecimal).
-.TP
-.I siint
SI integer: a whole number, possibly containing a suffix denoting the base unit
of the value. Accepted suffixes are `k', 'M' and 'G', denoting kilo (1024),
-mega (1024*1024) and giga (1024*1024*1024) respectively.
+mega (1024*1024) and giga (1024*1024*1024) respectively. If prefixed with '0x',
+the value is assumed to be base 16 (hexadecimal).
.TP
.I bool
Boolean: a true or false value. `0' denotes false, `1' denotes true.
Disable use of \fIposix_fadvise\fR\|(2) to advise the kernel what I/O patterns
are likely to be issued. Default: true.
.TP
-.BI size \fR=\fPsiint
+.BI size \fR=\fPint
Total size of I/O for this job. \fBfio\fR will run until this many bytes have
been transfered, unless limited by other options (\fBruntime\fR, for instance).
Unless \fBnr_files\fR and \fBfilesize\fR options are given, this amount will be
that is given). If \fBfilesize\fR is not specified, each created file is the
same size.
.TP
-.BI blocksize \fR=\fPsiint "\fR,\fB bs" \fR=\fPsiint
+.BI blocksize \fR=\fPint[,int] "\fR,\fB bs" \fR=\fPint[,int]
Block size for I/O units. Default: 4k. Values for reads and writes can be
specified seperately in the format \fIread\fR,\fIwrite\fR, either of
which may be empty to leave that value at its default.
.TP
-.BI blocksize_range \fR=\fPirange "\fR,\fB bsrange" \fR=\fPirange
+.BI blocksize_range \fR=\fPirange[,irange] "\fR,\fB bsrange" \fR=\fPirange[,irange]
Specify a range of I/O block sizes. The issued I/O unit will always be a
multiple of the minimum size, unless \fBblocksize_unaligned\fR is set. Applies
-to both reads and writes, but can be specified seperately (see \fBblocksize\fR).
+to both reads and writes if only one range is given, but can be specified
+seperately with a comma seperating the values. Example: bsrange=1k-4k,2k-8k.
+Also (see \fBblocksize\fR).
+.TP
+.BI bssplit \fR=\fPstr
+This option allows even finer grained control of the block sizes issued,
+not just even splits between them. With this option, you can weight various
+block sizes for exact control of the issued IO for a job that has mixed
+block sizes. The format of the option is bssplit=blocksize/percentage,
+optionally adding as many definitions as needed seperated by a colon.
+Example: bssplit=4k/10:64k/50:32k/40 would issue 50% 64k blocks, 10% 4k
+blocks and 40% 32k blocks.
.TP
.B blocksize_unaligned\fR,\fP bs_unaligned
If set, any size in \fBblocksize_range\fR may be used. This typically won't
.B psync
Basic \fIpread\fR\|(2) or \fIpwrite\fR\|(2) I/O.
.TP
+.B vsync
+Basic \fIreadv\fR\|(2) or \fIwritev\fR\|(2) I/O. Will emulate queuing by
+coalescing adjacents IOs into a single submission.
+.TP
.B libaio
Linux native asynchronous I/O.
.TP
If true, use buffered I/O. This is the opposite of the \fBdirect\fR parameter.
Default: true.
.TP
-.BI offset \fR=\fPsiint
+.BI offset \fR=\fPint
Offset in the file to start I/O. Data before the offset will not be touched.
.TP
.BI fsync \fR=\fPint
have hugetlbfs mounted, and \fIfile\fR must point there.
.RE
.TP
-.BI hugepage\-size \fR=\fPsiint
+.BI hugepage\-size \fR=\fPint
Defines the size of a huge page. Must be at least equal to the system setting.
Should be a multiple of 1MiB. Default: 4MiB.
.TP
If true, written verify blocks are sorted if \fBfio\fR deems it to be faster to
read them back in a sorted manner. Default: true.
.TP
-.BI verify_offset \fR=\fPsiint
+.BI verify_offset \fR=\fPint
Swap the verification header with data somewhere else in the block before
writing. It is swapped back before verifying.
.TP
-.BI verify_interval \fR=\fPsiint
+.BI verify_interval \fR=\fPint
Write the verification header for this number of bytes, which should divide
\fBblocksize\fR. Default: \fBblocksize\fR.
.TP
Use threads created with \fBpthread_create\fR\|(3) instead of processes created
with \fBfork\fR\|(2).
.TP
-.BI zonesize \fR=\fPsiint
+.BI zonesize \fR=\fPint
Divide file into zones of the specified size in bytes. See \fBzoneskip\fR.
.TP
-.BI zoneskip \fR=\fPsiint
+.BI zoneskip \fR=\fPint
Skip the specified number of bytes when \fBzonesize\fR bytes of data have been
read.
.TP
.B write_lat_log
Same as \fBwrite_bw_log\fR, but writes I/O completion latencies.
.TP
-.BI lockmem \fR=\fPsiint
+.BI lockmem \fR=\fPint
Pin the specified amount of memory with \fBmlock\fR\|(2). Can be used to
simulate a smaller amount of memory.
.TP
.P
CPU usage:
.RS
-.B user, system, context switches
+.B user, system, context switches, major page faults, minor page faults
.RE
.P
IO depth distribution: