Merge branch 'add-librpma-engines' of https://github.com/janekmi/fio
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 3ec86aff134732ef941d78f6ba69ae2154a29f38..6219da663417b6d053e1794b77406fa8f805cd33 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -809,6 +809,8 @@ Target file/device
 
                **$jobname**
                                The name of the worker thread or process.
 
                **$jobname**
                                The name of the worker thread or process.
+               **$clientuid**
+                               IP of the fio process when using client/server mode.
                **$jobnum**
                                The incremental number of the worker thread or process.
                **$filenum**
                **$jobnum**
                                The incremental number of the worker thread or process.
                **$filenum**
@@ -2065,6 +2067,9 @@ I/O engine
                        unless :option:`verify` is set or :option:`cuda_io` is `posix`.
                        :option:`iomem` must not be `cudamalloc`. This ioengine defines
                        engine specific options.
                        unless :option:`verify` is set or :option:`cuda_io` is `posix`.
                        :option:`iomem` must not be `cudamalloc`. This ioengine defines
                        engine specific options.
+               **dfs**
+                       I/O engine supporting asynchronous read and write operations to the
+                       DAOS File System (DFS) via libdfs.
 
 I/O engine specific parameters
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 I/O engine specific parameters
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -2187,7 +2192,7 @@ with the caveat that when used on the command line, they must come after the
                this will be the starting port number since fio will use a range of
                ports.
 
                this will be the starting port number since fio will use a range of
                ports.
 
-   [rdma]
+   [rdma], [librpma_*]
 
                The port to use for RDMA-CM communication. This should be the same value
                on the client and the server side.
 
                The port to use for RDMA-CM communication. This should be the same value
                on the client and the server side.
@@ -2198,6 +2203,15 @@ with the caveat that when used on the command line, they must come after the
        is a TCP listener or UDP reader, the hostname is not used and must be omitted
        unless it is a valid UDP multicast address.
 
        is a TCP listener or UDP reader, the hostname is not used and must be omitted
        unless it is a valid UDP multicast address.
 
+.. option:: serverip=str : [librpma_*]
+
+       The IP address to be used for RDMA-CM based I/O.
+
+.. option:: direct_write_to_pmem=bool : [librpma_*]
+
+       Set to 1 only when Direct Write to PMem from the remote host is possible.
+       Otherwise, set to 0.
+
 .. option:: interface=str : [netsplice] [net]
 
        The IP address of the network interface used to send or receive UDP
 .. option:: interface=str : [netsplice] [net]
 
        The IP address of the network interface used to send or receive UDP
@@ -2450,6 +2464,24 @@ with the caveat that when used on the command line, they must come after the
                GPU to RAM before a write and copied from RAM to GPU after a
                read. :option:`verify` does not affect use of cudaMemcpy.
 
                GPU to RAM before a write and copied from RAM to GPU after a
                read. :option:`verify` does not affect use of cudaMemcpy.
 
+.. option:: pool=str : [dfs]
+
+       Specify the UUID of the DAOS pool to connect to.
+
+.. option:: cont=str : [dfs]
+
+       Specify the UUID of the DAOS container to open.
+
+.. option:: chunk_size=int : [dfs]
+
+       Specificy a different chunk size (in bytes) for the dfs file.
+       Use DAOS container's chunk size by default.
+
+.. option:: object_class=str : [dfs]
+
+       Specificy a different object class for the dfs file.
+       Use DAOS container's object class by default.
+
 I/O depth
 ~~~~~~~~~
 
 I/O depth
 ~~~~~~~~~
 
@@ -2574,6 +2606,13 @@ I/O rate
        before we have to complete it and do our :option:`thinktime`. In other words, this
        setting effectively caps the queue depth if the latter is larger.
 
        before we have to complete it and do our :option:`thinktime`. In other words, this
        setting effectively caps the queue depth if the latter is larger.
 
+.. option:: thinktime_blocks_type=str
+
+       Only valid if :option:`thinktime` is set - control how :option:`thinktime_blocks`
+       triggers. The default is `complete`, which triggers thinktime when fio completes
+       :option:`thinktime_blocks` blocks. If this is set to `issue`, then the trigger happens
+       at the issue side.
+
 .. option:: rate=int[,int][,int]
 
        Cap the bandwidth used by this job. The number is in bytes/sec, the normal
 .. option:: rate=int[,int][,int]
 
        Cap the bandwidth used by this job. The number is in bytes/sec, the normal
@@ -2654,11 +2693,12 @@ I/O latency
        true, fio will continue running and try to meet :option:`latency_target`
        by adjusting queue depth.
 
        true, fio will continue running and try to meet :option:`latency_target`
        by adjusting queue depth.
 
-.. option:: max_latency=time
+.. option:: max_latency=time[,time][,time]
 
        If set, fio will exit the job with an ETIMEDOUT error if it exceeds this
        maximum latency. When the unit is omitted, the value is interpreted in
 
        If set, fio will exit the job with an ETIMEDOUT error if it exceeds this
        maximum latency. When the unit is omitted, the value is interpreted in
-       microseconds.
+       microseconds. Comma-separated values may be specified for reads, writes,
+       and trims as described in :option:`blocksize`.
 
 .. option:: rate_cycle=int
 
 
 .. option:: rate_cycle=int