Add support for redirection replay of blktrace traces to another device
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index bd5bebfc929fc1a71a09e15dba27c10d43e0a042..452e288b0279b76f7fd82997554973b58a3b5284 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -313,13 +313,30 @@ rw=str            Type of io pattern. Accepted values are:
                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,
                since the speed may be different. It is possible to specify
-               a number of IO's to do before getting a new offset - this
-               is only useful for random IO, where fio would normally
-               generate a new random offset for every IO. If you append
-               eg 8 to randread, you would get a new random offset for
+               a number of IO's to do before getting a new offset, this is
+               one by appending a ':<nr>' to the end of the string given.
+               For a random read, it would look like 'rw=randread:8' for
+               passing in an offset modifier with a value of 8. See the
+               'rw_sequencer' option.
+
+rw_sequencer=str If an offset modifier is given by appending a number to
+               the rw=<str> line, then this option controls how that
+               number modifies the IO offset being generated. Accepted
+               values are:
+
+                       sequential      Generate sequential offset
+                       identical       Generate the same offset
+
+               'sequential' is only useful for random IO, where fio would
+               normally generate a new random offset for every IO. If you
+               append eg 8 to randread, you would get a new random offset for
                every 8 IO's. The result would be a seek for only every 8
                IO's, instead of for every IO. Use rw=randread:8 to specify
-               that.
+               that. As sequential IO is already sequential, setting
+               'sequential' for that would not result in any differences.
+               'identical' behaves in a similar fashion, except it sends
+               the same offset 8 number of times before generating a new
+               offset.
 
 kb_base=int    The base unit for a kilobyte. The defacto base is 2^10, 1024.
                Storage manufacturers like to use 10^3 or 1000 as a base
@@ -969,6 +986,30 @@ read_iolog=str     Open an iolog with the specified file name and replay the
                for how to capture such logging data. For blktrace replay,
                the file needs to be turned into a blkparse binary data
                file first (blkparse <device> -o /dev/null -d file_for_fio.bin).
+               
+replay_no_stall=int When replaying I/O with read_iolog the default behavior
+               is to attempt to respect the time stamps within the log and replay
+        them with the appropriate delay between IOPS.  By setting this variable
+        fio will not respect the timestamps and attempt to replay them as fast
+        as possible while still respecting ordering.  The result is the same
+        I/O pattern to a given device, but different timings.
+
+replay_redirect=str While replaying I/O patterns using read_iolog the
+               default behavior is to replay the IOPS onto the major/minor
+               device that each IOP was recorded from.  This is sometimes
+               undesireable because on a different machine those major/minor
+               numbers can map to a different device.  Changing hardware on
+               the same system can also result in a different major/minor
+               mapping.  Replay_redirect causes all IOPS to be replayed onto
+               the single specified device regardless of the device it was
+               recorded from. i.e. replay_redirect=/dev/sdc would cause all
+               IO in the blktrace to be replayed onto /dev/sdc.  This means
+               multiple devices will be replayed onto a single, if the trace
+               contains multiple devices.  If you want multiple devices to be
+               replayed concurrently to multiple redirected devices you must
+               blkparse your trace into separate traces and replay them with
+               independent fio invocations.  Unfortuantely this also breaks
+               the strict time ordering between multiple device accesses.
 
 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