Fix typo in bssplit documentation
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 5c8623d2cd39ba61794e6674a94ed868494f38b0..4398ffa717843095889b8d2065d5a05769a50acb 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -1429,7 +1429,7 @@ Block size
        If you want a workload that has 50% 2k reads and 50% 4k reads, while
        having 90% 4k writes and 10% 8k writes, you would specify::
 
-               bssplit=2k/50:4k/50,4k/90,8k/10
+               bssplit=2k/50:4k/50,4k/90:8k/10
 
        Fio supports defining up to 64 different weights for each data
        direction.
@@ -1854,12 +1854,12 @@ I/O engine
 
                **pmemblk**
                        Read and write using filesystem DAX to a file on a filesystem
-                       mounted with DAX on a persistent memory device through the NVML
+                       mounted with DAX on a persistent memory device through the PMDK
                        libpmemblk library.
 
                **dev-dax**
                        Read and write using device DAX to a persistent memory device (e.g.,
-                       /dev/dax0.0) through the NVML libpmem library.
+                       /dev/dax0.0) through the PMDK libpmem library.
 
                **external**
                        Prefix to specify loading an external I/O engine object file. Append
@@ -1875,7 +1875,7 @@ I/O engine
 
                **libpmem**
                        Read and write using mmap I/O to a file on a filesystem
-                       mounted with DAX on a persistent memory device through the NVML
+                       mounted with DAX on a persistent memory device through the PMDK
                        libpmem library.
 
 I/O engine specific parameters
@@ -2079,6 +2079,26 @@ with the caveat that when used on the command line, they must come after the
        With writefua option set to 1, write operations include
        the force unit access (fua) flag. Default is 0.
 
+.. option:: sg_write_mode=str : [sg]
+       Specify the type of write commands to issue. This option can take three values:
+
+       **write**
+               This is the default where write opcodes are issued as usual.
+       **verify**
+               Issue WRITE AND VERIFY commands. The BYTCHK bit is set to 0. This
+               directs the device to carry out a medium verification with no data
+               comparison. The writefua option is ignored with this selection.
+       **same**
+               Issue WRITE SAME commands. This transfers a single block to the device
+               and writes this same block of data to a contiguous sequence of LBAs
+               beginning at the specified offset. fio's block size parameter specifies
+               the amount of data written with each command. However, the amount of data
+               actually transferred to the device is equal to the device's block
+               (sector) size. For a device with 512 byte sectors, blocksize=8k will
+               write 16 sectors with each command. fio will still generate 8k of data
+               for each command but only the first 512 bytes will be used and
+               transferred to the device. The writefua option is ignored with this
+               selection.
 
 I/O depth
 ~~~~~~~~~
@@ -2311,6 +2331,14 @@ I/O replay
        still respecting ordering. The result is the same I/O pattern to a given
        device, but different timings.
 
+.. option:: replay_time_scale=int
+
+       When replaying I/O with :option:`read_iolog`, fio will honor the
+       original timing in the trace. With this option, it's possible to scale
+       the time. It's a percentage option, if set to 50 it means run at 50%
+       the original IO rate in the trace. If set to 200, run at twice the
+       original IO rate. Defaults to 100.
+
 .. option:: replay_redirect=str
 
        While replaying I/O patterns using :option:`read_iolog` the default behavior
@@ -2338,6 +2366,14 @@ I/O replay
 
        Scale sector offsets down by this factor when replaying traces.
 
+.. option:: replay_skip=str
+
+       Sometimes it's useful to skip certain IO types in a replay trace.
+       This could be, for instance, eliminating the writes in the trace.
+       Or not replaying the trims/discards, if you are redirecting to
+       a device that doesn't support them. This option takes a comma
+       separated list of read, write, trim, sync.
+
 
 Threads, processes and job synchronization
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -2627,18 +2663,6 @@ Verification
        previously written file. If the data direction includes any form of write,
        the verify will be of the newly written data.
 
-.. option:: verifysort=bool
-
-       If true, fio will sort written verify blocks when it deems it faster to read
-       them back in a sorted manner. This is often the case when overwriting an
-       existing file, since the blocks are already laid out in the file system. You
-       can ignore this option unless doing huge amounts of really fast I/O where
-       the red-black tree sorting CPU time becomes significant. Default: true.
-
-.. option:: verifysort_nr=int
-
-       Pre-load and sort verify blocks for a read workload.
-
 .. option:: verify_offset=int
 
        Swap the verification header with data somewhere else in the block before