[PATCH] Easy process shared semaphores
[fio.git] / README
diff --git a/README b/README
index afef8ec50203d7c367b8cc03537612545db3fedd..3240b65a412573b65eb2a6b90a73a73e678cea27 100644 (file)
--- a/README
+++ b/README
@@ -6,6 +6,36 @@ 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.
 
 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
+
+This might change in the future if I opt for an autoconf type setup.
+
+
 Options
 -------
 
 Options
 -------
 
@@ -19,19 +49,29 @@ $ fio
        -l Generate per-job latency logs
        -w Generate per-job bandwidth logs
        -f <file> Read <file> for job descriptions
        -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:
 
        -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
        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,
        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
        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 +97,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.
        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
        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 +105,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
        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
 -------------------------
 
 Examples using a job file
 -------------------------