Add ramp_time option
[fio.git] / README
diff --git a/README b/README
index 4c58d376a5e7c8b6caa7a91a589f3d9b20bef5a3..75553495205c5354397235da553a536b6583b9c9 100644 (file)
--- a/README
+++ b/README
@@ -50,12 +50,26 @@ Building
 --------
 
 Just type 'make' and 'make install'. If on FreeBSD, for now you have to
-specify the FreeBSD Makefile with -f, eg:
+specify the FreeBSD Makefile with -f and use gmake (not make), eg:
 
-$ make -f Makefile.Freebsd && make -f Makefile.FreeBSD install
+$ gmake -f Makefile.Freebsd && gmake -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.
+The OpenSolaris make should work fine. This might change in the
+future if I opt for an autoconf type setup.
+
+If your compile fails with an error like this:
+
+    CC gettime.o
+In file included from fio.h:23,
+                 from gettime.c:8:
+os/os.h:15:20: error: libaio.h: No such file or directory
+In file included from gettime.c:8:
+fio.h:119: error: field 'iocb' has incomplete type
+make: *** [gettime.o] Error 1
+
+Check that you have the libaio development package installed. On RPM
+based distros, it's typically called libaio-devel.
 
 
 Command line
@@ -64,7 +78,7 @@ Command line
 $ fio
         --debug         Enable some debugging options (see below)
         --output        Write output to file
-        --runtime       Runtime in seconds
+        --timeout       Runtime in seconds
         --latency-log   Generate per-job latency logs
         --bandwidth-log Generate per-job bandwidth logs
         --minimal       Minimal (terse) output
@@ -72,9 +86,11 @@ $ fio
        --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
+       --readonly      Turn on safety read-only checks, preventing writes
        --eta=when      When ETA estimate should be printed
                        May be "always", "never" or "auto"
+       --section=name  Only run specified section in job file
+       --alloc-size=kb Set smalloc pool to this size in kb (def 1024)
 
 
 Any parameters following the options will be assumed to be job files,
@@ -98,11 +114,28 @@ options in fio. Currently the options are:
        blktrace        Dump info related to blktrace setup
        verify          Dump info related to IO verification
        all             Enable all debug options
+       random          Dump info related to random offset generation
+       parse           Dump info related to option matching and parsing
+       diskutil        Dump info related to disk utilization updates
+       job:x           Dump info only related to job number x
        ? or help       Show available debug options.
 
 You can specify as many as you want, eg --debug=file,mem will enable
 file and memory debugging.
 
+The section switch is meant to make it easier to ship a bigger job file
+instead of several smaller ones. Say you define a job file with light,
+moderate, and heavy parts. Then you can ask fio to run the given part
+only by giving it a --section=heavy command line option. The section
+option only applies to job sections, the reserved 'global' section is
+always parsed and taken into account.
+
+Fio has an internal allocator for shared memory called smalloc. It
+allocates shared structures from this pool. The pool defaults to 1024k
+in size, and can grow to 32 pools. If running large jobs with randommap
+enabled it can run out of memory, in which case the --alloc-size switch
+is handy for starting with a larger pool size.
+
 
 Job file
 --------
@@ -135,15 +168,18 @@ The job file parameters are:
                        across runs, if 'x' is 1.
        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,
-                       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.
+                       posixaio for POSIX aio, solarisaio for Solaris
+                       native async IO, sync for regular read/write io,
+                       psync for regular pread/pwrite io, vsync for regular
+                       readv/writev (with queuing emulation) mmap for mmap'ed
+                       io, syslet-rw for syslet driven read/write, splice for
+                       using splice/vmsplice, sg for direct SG_IO io, net
+                       for network io, or cpuio for a cycler burner load. sg
+                       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,
@@ -182,6 +218,7 @@ The job file parameters are:
        verify=x        If 'x' == md5, use md5 for verifies. If 'x' == crc32,
                        use crc32 for verifies. md5 is 'safer', but crc32 is
                        a lot faster. Only makes sense for writing to a file.
+                       For other types of checksumming, see HOWTO.
        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