Add documentation for 'sync_file_range'
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 0b40f758bbd3604f5fa9c0572d4296c753072dea..6c7f05b9efde3334e5260b4c86371216d43de3b3 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -324,6 +324,11 @@ kb_base=int        The base unit for a kilobyte. The defacto base is 2^10, 1024.
 randrepeat=bool        For random IO workloads, seed the generator in a predictable
                way so that results are repeatable across repetitions.
 
+fallocate=bool By default, fio will use fallocate() to advise the system
+               of the size of the file we are going to write. This can be
+               turned off with fallocate=0. May not be available on all
+               supported platforms.
+
 fadvise_hint=bool By default, fio will use fadvise() to advise the kernel
                on what IO patterns it is likely to issue. Sometimes you
                want to test specific IO patterns without telling the
@@ -561,8 +566,24 @@ fsync=int  If writing to a file, issue a sync of the dirty data
                not sync the file. The exception is the sg io engine, which
                synchronizes the disk cache anyway.
 
-fsyncdata=int  Like fsync= but uses fdatasync() to only sync data and not
+fdatasync=int  Like fsync= but uses fdatasync() to only sync data and not
                metadata blocks.
+               In FreeBSD there is no fdatasync(), this falls back to
+               using fsync()
+
+sync_file_range=str:val        Use sync_file_range() for every 'val' number of
+               write operations. Fio will track range of writes that
+               have happened since the last sync_file_range() call. 'str'
+               can currently be one or more of:
+
+               wait_before     SYNC_FILE_RANGE_WAIT_BEFORE
+               write           SYNC_FILE_RANGE_WRITE
+               wait_after      SYNC_FILE_RANGE_WAIT_AFTER
+
+               So if you do sync_file_range=wait_before,write:8, fio would
+               use SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE for
+               every 8 writes. Also see the sync_file_range(2) man page.
+               This option is Linux specific.
 
 overwrite=bool If true, writes to a file will always overwrite existing
                data. If the file doesn't already exist, it will be
@@ -1015,6 +1036,11 @@ cgroup_weight=int        Set the weight of the cgroup to this value. See
                the documentation that comes with the kernel, allowed values
                are in the range of 100..1000.
 
+uid=int                Instead of running as the invoking user, set the user ID to
+               this value before the thread/process does any work.
+
+gid=int                Set group ID, see uid.
+
 6.0 Interpreting the output
 ---------------------------