Add --eta-newline option
[fio.git] / README
diff --git a/README b/README
index 03e6751c53f6ccb502c5fea0bcde7f1dc9bfdf75..b662e714d62bb6f88f3880c5b5607c52a31556b6 100644 (file)
--- a/README
+++ b/README
@@ -39,11 +39,6 @@ Starting with Ubuntu 10.04 LTS (aka "Lucid Lynx"), fio packages are part
 of the Ubuntu "universe" repository.
 http://packages.ubuntu.com/search?keywords=fio
 
-SUSE:
-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
-
 Red Hat, CentOS & Co:
 Dag WieĆ«rs has RPMs for Red Hat related distros, find them here:
 http://dag.wieers.com/rpm/packages/fio/
@@ -59,7 +54,7 @@ tool (http://www.opencsw.org/get-it/pkgutil/) and then install fio via
 
 Windows:
 Bruce Cran <bruce@cran.org.uk> has fio packages for Windows at
-http://www.bluestop.org/fio .
+http://www.bluestop.org/fio/ .
 
 
 Mailing list
@@ -109,21 +104,29 @@ based distros, it's typically called libaio-devel.
 Windows
 -------
 
-On Windows Cygwin (http://www.cygwin.com) is required with at least
-devel/gcc4 and devel/make installed in order to build fio, and
-admin/cygrunsrv to run it. You can also install devel/git to fetch/update
-the source files. To create an MSI installer package put a copy of Cygwin
-in os\windows\fio, install WiX 3.6 from http://wix.sourceforge.net/releases/
-and run dobuild.cmd from the os/windows directory.
+On Windows Cygwin (http://www.cygwin.com/) is required in order to
+build fio. To create an MSI installer package install WiX 3.7 from
+http://wixtoolset.org and run dobuild.cmd from the
+os/windows directory.
+
+How to compile FIO on 64-bit Windows:
+
+ 1. Install Cygwin (http://www.cygwin.com/setup.exe). Install 'make' and all
+    packages starting with 'mingw64-i686' and 'mingw64-x86_64'.
+ 2. Download ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-9-1-release/dll/x64/pthreadGC2.dll
+    and copy to the fio source directory.
+ 3. Open the Cygwin Terminal.
+ 4. Go to the fio directory (source files).
+ 5. Run 'make clean'.
+ 6. Run 'make'.
 
-Before running fio you'll need to have a copy of cygserver running. Run 
-"/usr/bin/cygserver-config" from an elevated Cygwin shell (i.e. launch the
-Cygwin shell under the Administrator account) to configure it. Once
-configured, run "net start cygserver" to start it, or type
-"/usr/sbin/cygserver &" in the Cygwin shell to start a local copy. 
+To build fio on 32-bit Windows, download x86/pthreadGC2.dll instead and do
+'./configure --build-32bit-win=yes' before 'make'.
 
-If fio exits with the message "Bad system call" it normally means that
-Cygserver isn't running.
+It's recommended that once built or installed, fio be run in a Command Prompt
+or other 'native' console such as console2, since there are known to be display
+and signal issues when running it under a Cygwin shell
+(see http://code.google.com/p/mintty/issues/detail?id=56 for details).
 
 
 Command line
@@ -132,13 +135,15 @@ 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
+       --output-format=type    Output format (terse,json,normal)
+       --terse-version=type    Terse version output format (default 3, or 2 or 4).
        --version               Print version info and exit
-       --terse-version=type    Terse version output format (default 3, or 2).
        --help                  Print this page
+       --cpuclock-test         Perform test/validation of CPU clock
        --cmdhelp=cmd           Print command help, "all" for all of them
        --enghelp=engine        Print ioengine help, or list available ioengines
        --enghelp=engine,cmd    Print help for an ioengine cmd
@@ -147,13 +152,17 @@ $ fio
                                writes
        --eta=when              When ETA estimate should be printed
                                May be "always", "never" or "auto"
+       --eta-newline=time      Force a new line for every 'time' period passed
        --section=name          Only run specified section in job file.
                                Multiple sections can be specified.
-       --alloc-size=kb Set smalloc pool to this size in kb (def 1024)
-       --warnings-fatal Fio parser warnings are fatal
+       --alloc-size=kb         Set smalloc pool to this size in kb (def 1024)
+       --warnings-fatal        Fio parser warnings are fatal
        --max-jobs              Maximum number of threads/processes to support
        --server=args           Start backend server. See Client/Server section.
        --client=host           Connect to specified backend.
+       --idle-prof=option      Report cpu idleness on a system or percpu basis
+                               (option=system,percpu) or run unit work
+                               calibration only (option=calibrate).
 
 
 Any parameters following the options will be assumed to be job files,
@@ -172,11 +181,11 @@ 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
+       io              Dump info related to IO queuing
+       mem             Dump info related to memory allocations
        blktrace        Dump info related to blktrace setup
        verify          Dump info related to IO verification
-       all                     Enable all debug options
+       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
@@ -243,10 +252,11 @@ The job file parameters are:
                        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
+                       for network io, rdma for RDMA 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
@@ -265,6 +275,11 @@ The job file parameters are:
        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.
+       numa_cpu_nodes=x,y-z  Allow job to run on specified NUMA nodes' CPU.
+       numa_mem_policy=m:x,y-z  Setup numa memory allocation policy.
+                       'm' stands for policy, such as local, interleave,
+                       bind, prefer, local. 'x, y-z' are numa node(s) for
+                       memory allocation according to policy.
        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.
@@ -373,7 +388,7 @@ are sent to the server. The 'server' string follows the same format as it
 does on the server side, to allow IP/hostname/socket and port strings.
 You can connect to multiple clients as well, to do that you could run:
 
-fio --client=server2 --client=server2 <job file(s)>
+fio --client=server2 <job file(s)> --client=server2 <job file(s)>
 
 
 Platforms