implement get_cpu_clock() for s390/s390x
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 32e5d668c89e42efec4704b2db8686afc32e17c2..0930f33784a6515fe67691226851c38621bb47b2 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -753,6 +753,23 @@ softrandommap=bool See norandommap. If fio runs with the random block map
                will not be as complete as with random maps, this option is
                disabled by default.
 
+random_generator=str   Fio supports the following engines for generating
+               IO offsets for random IO:
+
+               tausworthe      Strong 2^88 cycle random number generator
+               lfsr            Linear feedback shift register generator
+
+               Tausworthe is a strong random number generator, but it
+               requires tracking on the side if we want to ensure that
+               blocks are only read or written once. LFSR guarantees
+               that we never generate the same offset twice, and it's
+               also less computationally expensive. It's not a true
+               random generator, however, though for IO purposes it's
+               typically good enough. LFSR only works with single
+               block sizes, not with workloads that use multiple block
+               sizes. If used with such a workload, fio may read or write
+               some blocks multiple times.
+               
 nice=int       Run the job with the given nice value. See man nice(2).
 
 prio=int       Set the io priority value of this job. Linux limits us to
@@ -1245,6 +1262,22 @@ percentile_list=float_list Overwrite the default list of percentiles
                the values of completion latency below which 99.5% and
                99.9% of the observed latencies fell, respectively.
 
+clocksource=str        Use the given clocksource as the base of timing. The
+               supported options are:
+
+                       gettimeofday    gettimeofday(2)
+
+                       clock_gettime   clock_gettime(2)
+
+                       cpu             Internal CPU clock source
+
+               cpu is the preferred clocksource if it is reliable, as it
+               is very fast (and fio is heavy on time calls). Fio will
+               automatically use this clocksource if it's supported and
+               considered reliable on the system it is running on, unless
+               another clocksource is specifically set. For x86/x86-64 CPUs,
+               this means supporting TSC Invariant.
+
 gtod_reduce=bool Enable all of the gettimeofday() reducing options
                (disable_clat, disable_slat, disable_bw) plus reduce
                precision of the timeout somewhat to really shrink
@@ -1382,6 +1415,15 @@ that defines them is selected.
 [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.
+[net] pingpong Normal a network writer will just continue writing data, and
+               a network reader will just consume packages. If pingpong=1
+               is set, a writer will send its normal payload to the reader,
+               then wait for the reader to send the same payload back. This
+               allows fio to measure network latencies. The submission
+               and completion latencies then measure local time spent
+               sending or receiving, and the completion latency measures
+               how long it took for the other end to receive and send back.
+
 [e4defrag] donorname=str
                File will be used as a block donor(swap extents between files)
 [e4defrag] inplace=int