Add --debug for enabling internal dumps on various actions
[fio.git] / README
diff --git a/README b/README
index bfed0ef7194ed4968c1b24ef76b40d8a797de61c..a13151ce5ce0720715bbc27926cde4eb135ea79e 100644 (file)
--- a/README
+++ b/README
@@ -14,18 +14,27 @@ Source
 
 fio resides in a git repo, the canonical place is:
 
-git://brick.kernel.dk/data/git/fio.git
+git://git.kernel.dk/fio.git
+
+The http protocol also works, path is the same.
 
 Snapshots are frequently generated 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:
+Pascal Bleser <guru@unixtech.be> has fio RPMs in his repository for
+SUSE variants, you can find them here:
 
 http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=System/fio
 
+Dag WieĆ«rs has RPMs for Red Hat related distros, find them here:
+
+http://dag.wieers.com/rpm/packages/fio/
+
+Mandriva has integrated fio into their package repository, so installing
+on that distro should be as easy as typing 'urpmi fio'.
+
 
 Mailing list
 ------------
@@ -53,31 +62,58 @@ Command line
 ------------
 
 $ fio
+        --debug         Enable some debugging options (see below)
         --output        Write output to file
-        --timeout       Runtime in seconds
+        --runtime       Runtime in seconds
         --latency-log   Generate per-job latency logs
         --bandwidth-log Generate per-job bandwidth logs
         --minimal       Minimal (terse) output
         --version       Print version info and exit
+       --help          Print this page
+       --cmdhelp=cmd   Print command help, "all" for all of them
+       --showcmd       Turn a job file into command line options
+       --readonly      Turn on safety read-only checks
+       --eta=when      When ETA estimate should be printed
+                       May be "always", "never" or "auto"
+
 
 Any parameters following the options will be assumed to be job files,
 unless they match a job file parameter. You can add as many as you want,
 each job file will be regarded as a separate group and fio will stonewall
 its execution.
 
+The --readonly switch is an extra safety guard to prevent accidentically
+turning on a write setting when that is not desired. Fio will only write
+if rw=write/randwrite/rw/randrw is given, but this extra safety net can
+be used as an extra precaution. It will also enable a write check in the
+io engine core to prevent an accidental write due to a fio bug.
+
+The debug switch allows adding options that trigger certain logging
+options in fio. Currently the options are:
+
+       process         Dump info related to processes
+       file            Dump info related to file actions
+       io              Dump info related to IO queuing
+       mem             Dump info related to memory allocations
+
+You can specify as many as you want, eg --debug=file,mem will enable
+file and memory debugging. Specifying --debug=help or --debug=? will
+dump the current modifier list.
+
 
 Job file
 --------
 
 See the HOWTO file for a more detailed description of parameters and what
-they mean. This file contains the terse version.  Only a few options can
-be controlled with command line parameters, generally it's a lot easier to
+they mean. This file contains the terse version. You can describe big and
+complex setups with the command line, but generally it's a lot easier to
 just write a simple job file to describe the workload. The job file format
-is in the ini style format, as it's easy to read and write for the user.
+is in the ini style format, as that is easy to read and write for the user.
 
 The job file parameters are:
 
        name=x          Use 'x' as the identifier for this job.
+       description=x   'x' is a text description of the job.
        directory=x     Use 'x' as the top level directory for storing files
        filename=x      Force the use of 'x' as the filename for all files
                        in this thread. If not given, fio will make up
@@ -97,12 +133,14 @@ The job file parameters are:
        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, 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. Fio also
-                       has a null io engine, which is mainly used for testing
-                       fio itself.
+                       psync for regular pread/pwrite io, mmap for mmap'ed io,
+                       syslet-rw for syslet driven read/write, splice for using
+                       splice/vmsplice, sgio for direct SG_IO io, net for
+                       network io, or cpuio for a cycler burner load. sgio only
+                       works on Linux on SCSI (or SCSI-like devices, such as
+                       usb-storage or sata/libata driven) devices. Fio also has
+                       a null io engine, which is mainly used for testing fio
+                       itself.
        iodepth=x       For async io, allow 'x' ios in flight
        overwrite=x     If 'x', layout a write file first.
        nrfiles=x       Spread io load over 'x' number of files per job,
@@ -118,11 +156,12 @@ The job file parameters are:
        ratemin=x       Quit if rate of x KiB/sec can't be met
        ratecycle=x     ratemin averaged over x msecs
        cpumask=x       Only allow job to run on CPUs defined by mask.
+       cpus_allowed=x  Like 'cpumask', but allow text setting of CPU affinity.
        fsync=x         If writing with buffered IO, fsync after every
                        'x' blocks have been written.
        end_fsync=x     If 'x', run fsync() after end-of-job.
        startdelay=x    Start this thread x seconds after startup
-       timeout=x       Terminate x seconds after startup. Can include a
+       runtime=x       Terminate x seconds after startup. Can include a
                        normal time suffix if not given in seconds, such as
                        'm' for minutes, 'h' for hours, and 'd' for days.
        offset=x        Start io at offset x (x string can include k/m/g)
@@ -168,7 +207,7 @@ The job file parameters are:
        ioscheduler=x   Use ioscheduler 'x' for this job.
        cpuload=x       For a CPU io thread, percentage of CPU time to attempt
                        to burn.
-       cpuchunks=x     Split burn cycles into pieces of x.
+       cpuchunks=x     Split burn cycles into pieces of x usecs.
 
 
 Author