[PATCH] Improve run_str[] updates and printing
[fio.git] / README
diff --git a/README b/README
index afef8ec50203d7c367b8cc03537612545db3fedd..a85962e4b9345bb0f10e69690a73d0bffc2c67e6 100644 (file)
--- a/README
+++ b/README
@@ -6,6 +6,37 @@ type of io action as specified by the user. fio takes a number of
 global parameters, each inherited by the thread unless otherwise
 parameters given to them overriding that setting is given.
 
+
+Source
+------
+
+fio resides in a git repo, the canonical place is:
+
+git://brick.kernel.dk/data/git/fio.git
+
+Snapshots are frequently generated as well and they include the git
+meta data as well. You can download them here:
+
+http://brick.kernel.dk/snaps/
+
+Pascal Bleser <guru@unixtech.be> has fio RPMs in his repository, you
+can find them here:
+
+http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=System/fio
+
+
+Building
+--------
+
+Just type 'make' and 'make install'. If on FreeBSD, for now you have to
+specify the FreeBSD Makefile with -f, eg:
+
+$ make -f Makefile.Freebsd && make -f Makefile.FreeBSD install
+
+Likewise with OpenSolaris, use the Makefile.solaris to compile there.
+This might change in the future if I opt for an autoconf type setup.
+
+
 Options
 -------
 
@@ -19,19 +50,29 @@ $ fio
        -l Generate per-job latency logs
        -w Generate per-job bandwidth logs
        -f <file> Read <file> for job descriptions
+       -h Print help info
        -v Print version information and exit
 
 The <jobs> format is as follows:
 
+       name=x          Use 'x' as the identifier for this job.
        directory=x     Use 'x' as the top level directory for storing files
-       rw=x            'x' may be: read, randread, write, or randwrite
+       rw=x            'x' may be: read, randread, write, randwrite,
+                       rw (read-write mix), randrw (read-write random mix)
+       rwmixcycle=x    Base cycle for switching between read and write
+                       in msecs.
+       rwmixread=x     'x' percentage of rw mix ios will be reads. If
+                       rwmixwrite is also given, the last of the two will
+                        be used if they don't add up to 100%.
+       rwmixwrite=x    'x' percentage of rw mix ios will be writes. See
+                       rwmixread.
        size=x          Set file size to x bytes (x string can include k/m/g)
        ioengine=x      'x' may be: aio/libaio/linuxaio for Linux aio,
                        posixaio for POSIX aio, sync for regular read/write io,
-                       mmap for mmap'ed io, or sgio for direct SG_IO io. The
-                       latter only works on Linux on SCSI (or SCSI-like
-                       devices, such as usb-storage or sata/libata driven)
-                       devices.
+                       mmap for mmap'ed io, splice for using splice/vmsplice,
+                       or sgio for direct SG_IO io. The latter only works on
+                       Linux on SCSI (or SCSI-like devices, such as
+                       usb-storage or sata/libata driven) devices.
        iodepth=x       For async io, allow 'x' ios in flight
        overwrite=x     If 'x', layout a write file first.
        prio=x          Run io at prio X, 0-7 is the kernel allowed range
@@ -57,6 +98,7 @@ The <jobs> format is as follows:
        bwavgtime=x     Average bandwidth stats over an x msec window.
        create_serialize=x      If 'x', serialize file creation.
        create_fsync=x  If 'x', run fsync() after file creation.
+       end_fsync=x     If 'x', run fsync() after end-of-job.
        loops=x         Run the job 'x' number of times.
        verify=x        If 'x' == md5, use md5 for verifies. If 'x' == crc32,
                        use crc32 for verifies. md5 is 'safer', but crc32 is
@@ -64,7 +106,27 @@ The <jobs> format is as follows:
        stonewall       Wait for preceeding jobs to end before running.
        numjobs=x       Create 'x' similar entries for this job
        thread          Use pthreads instead of forked jobs
-
+       zonesize=x
+       zoneskip=y      Zone options must be paired. If given, the job
+                       will skip y bytes for every x read/written. This
+                       can be used to gauge hard drive speed over the entire
+                       platter, without reading everything. Both x/y can
+                       include k/m/g suffix.
+       iolog=x         Open and read io pattern from file 'x'. The file must
+                       contain one io action per line in the following format:
+                       rw, offset, length
+                       where with rw=0/1 for read/write, and the offset
+                       and length entries being in bytes.
+       write_iolog=x   Write an iolog to file 'x' in the same format as iolog.
+                       The iolog options are exclusive, if both given the
+                       read iolog will be performed.
+       lockmem=x       Lock down x amount of memory on the machine, to
+                       simulate a machine with less memory available. x can
+                       include k/m/g suffix.
+       nice=x          Run job at given nice value.
+       exec_prerun=x   Run 'x' before job io is begun.
+       exec_postrun=x  Run 'x' after job io has finished.
+       ioscheduler=x   Use ioscheduler 'x' for this job.
 
 Examples using a job file
 -------------------------