random: document default seed value
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 6c7abcc7979d275a0bea276fd09deae69a587fec..d62d4089fb9d633892e60290f0917530c9411f5b 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -387,6 +387,8 @@ rw=str              Type of io pattern. Accepted values are:
                        randread        Random reads
                        rw,readwrite    Sequential mixed reads and writes
                        randrw          Random mixed reads and writes
+                       trimwrite       Mixed trims and writes. Blocks will be
+                                       trimmed first, then written to.
 
                For the mixed io types, the default is to split them 50/50.
                For certain types of io the result may still be skewed a bit,
@@ -433,6 +435,7 @@ unified_rw_reporting=bool   Fio normally reports statistics on a per
 
 randrepeat=bool        For random IO workloads, seed the generator in a predictable
                way so that results are repeatable across repetitions.
+               Defaults to true.
 
 randseed=int   Seed the random number generators based on this seed value, to
                be able to control what sequence of output is being generated.
@@ -770,6 +773,15 @@ ioengine=str       Defines how the job issues io to the file. The following
                                necessary environment variables to work with
                                hdfs/libhdfs properly.
 
+                       mtd     Read, write and erase an MTD character device
+                               (e.g., /dev/mtd0). Discards are treated as
+                               erases. Depending on the underlying device
+                               type, the I/O may have to go in a certain
+                               pattern, e.g., on NAND, writing sequentially
+                               to erase blocks and discarding before
+                               overwriting. The writetrim mode works well
+                               for this constraint.
+
                        external Prefix to specify loading an external
                                IO engine object file. Append the engine
                                filename, eg ioengine=external:/tmp/foo.o
@@ -809,6 +821,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.
 
+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.
@@ -1410,6 +1434,12 @@ replay_redirect=str While replaying I/O patterns using read_iolog the
                independent fio invocations.  Unfortuantely this also breaks
                the strict time ordering between multiple device accesses.
 
+replay_align=int       Force alignment of IO offsets and lengths in a trace
+               to this power of 2 value.
+
+replay_scale=int       Scale sector offsets down by this factor when
+               replaying traces.
+
 write_bw_log=str If given, write a bandwidth log of the jobs in this job
                file. Can be used to store data of the bandwidth of the
                jobs in their lifetime. The included fio_generate_plots
@@ -1721,6 +1751,7 @@ be the starting port number since fio will use a range of ports.
                1         : allocate space immidietly inside defragment event,
                            and free right after event
 
+[mtd] skip_bad=bool    Skip operations against known bad blocks.
 
 
 6.0 Interpreting the output
@@ -1986,6 +2017,7 @@ before it can be used with this format. The offset and length are given in
 bytes. The action can be one of these:
 
 wait       Wait for 'offset' microseconds. Everything below 100 is discarded.
+          The time is relative to the previous wait statement.
 read       Read 'length' bytes beginning from 'offset'
 write      Write 'length' bytes beginning from 'offset'
 sync       fsync() the file