fio.git
7 years agofio patch: Windows netio fixes
Bruce Cran [Wed, 10 Oct 2012 12:37:41 +0000 (13:37 +0100)]
fio patch: Windows netio fixes

Jens,

I've attached a patch to fix netio on Windows:

Add call to WSAStartup() to engines\net.c.
Fix NULL dereference in poll().
Add inet_aton().

--
Bruce Cran

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix UDP acronym
Bruce Cran [Wed, 10 Oct 2012 14:17:44 +0000 (08:17 -0600)]
Fix UDP acronym

It's 'User', not 'Unreliable'.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd pending IO to the tail of the busy list
Bruce Cran [Wed, 10 Oct 2012 14:15:58 +0000 (08:15 -0600)]
Add pending IO to the tail of the busy list

We add at the head now. The windowsaio engine completes from
the head of the list, so lets ensure that we wait and complete
closer to the submit order.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agosolaris: fix compile error on ctime_r()
Saurabh De [Tue, 9 Oct 2012 20:46:24 +0000 (14:46 -0600)]
solaris: fix compile error on ctime_r()

On Solaris, it takes a 3rd length argument.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agooptions: cast page_size to unsigned long for sprintf()
Jens Axboe [Tue, 9 Oct 2012 16:30:48 +0000 (10:30 -0600)]
options: cast page_size to unsigned long for sprintf()

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix confusion between terse and json output
Jens Axboe [Mon, 8 Oct 2012 19:34:31 +0000 (13:34 -0600)]
Fix confusion between terse and json output

It'd segfault trying to use json when it wasn't supposed to,
since we didn't have the parent set up appropriately.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoHOWTO: Fix description of grouping behavior with numjobs
Akash Verma [Thu, 4 Oct 2012 22:58:28 +0000 (15:58 -0700)]
HOWTO: Fix description of grouping behavior with numjobs

Signed-off-by: Akash Verma <akashv@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix bad check for terse version format 4
Jens Axboe [Thu, 4 Oct 2012 15:06:49 +0000 (17:06 +0200)]
Fix bad check for terse version format 4

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoXP/2003 compatability fix
Bruce Cran [Wed, 3 Oct 2012 17:46:46 +0000 (19:46 +0200)]
XP/2003 compatability fix

The attached patch fixes the bug that on XP fio fails with:

"The procedure entry point vsprintf_s could not be located in the
dynamic link library msvcrt.dll".

Only Vista and newer have the 'secure' functions, so we need to use
vsprintf to maintain compatibility with XP.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix segfault race on exit for platforms that don't have disk util support
Jens Axboe [Thu, 27 Sep 2012 09:31:50 +0000 (11:31 +0200)]
Fix segfault race on exit for platforms that don't have disk util support

We still need to quisce the disk util thread, as it also functions
as the runtime ETA status printer.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonetbsd: fix gettid
Roger Pau Monne [Wed, 26 Sep 2012 10:42:35 +0000 (12:42 +0200)]
netbsd: fix gettid

Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agobackend: fix data direction flow check
Dmitry Monakhov [Tue, 25 Sep 2012 10:12:36 +0000 (12:12 +0200)]
backend: fix data direction flow check

This patch fix regression caused SIGSEGV in case of writeonly
or readonly mode, caused by commit 59d8d0f5.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoparser: fix overflowing integer type options
Jens Axboe [Mon, 24 Sep 2012 12:32:26 +0000 (14:32 +0200)]
parser: fix overflowing integer type options

If we use bs=4g, the parser will happily take it since it shares
the data type with unsigned long long options. Make sure that
FIO_OPT_INT types have a cap of UINT_MAX, if they haven't set
a lower limit.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agobackend: don't allocate memory buffers for non-data workloads
Jens Axboe [Mon, 24 Sep 2012 12:25:33 +0000 (14:25 +0200)]
backend: don't allocate memory buffers for non-data workloads

A trim workload doesn't transfer any actual data, so don't any
backing memory for the IO buffers.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoengine: fix error handling for e4defrag/falloc
Dmitry Monakhov [Sun, 23 Sep 2012 17:49:53 +0000 (21:49 +0400)]
engine: fix error handling for e4defrag/falloc

At the time I've wrote this code i don't quite understand difference
between td->error and io_u->error. It is appeared that engine should
not have to explicitly assign td->error. Just initialize io_u->error and
backed will do proper handling.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agobackend: Add configurable non fatal error list
Dmitry Monakhov [Sun, 23 Sep 2012 11:46:09 +0000 (15:46 +0400)]
backend: Add configurable non fatal error list

Sometimes it is reasonable to perform test nearly system limits where
errors are possible and expected, in that case one may provide non
fatal error list which will be ignored during execution.
This patch add two options:
    ignore_error: List of non fatal error
    error_dump:   Whenever ignored list should be dumped to log.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Fri, 21 Sep 2012 13:06:23 +0000 (15:06 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

7 years agoCheck for ENOSPC on shmget() failure
Jens Axboe [Fri, 21 Sep 2012 13:05:45 +0000 (15:05 +0200)]
Check for ENOSPC on shmget() failure

We scale down the number of jobs based on EINVAL and ENOMEM,
but ENOSPC is a valid 'segment too big' error as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Fri, 21 Sep 2012 06:36:24 +0000 (08:36 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

7 years agoCorrectly apply size percentage for file iosize
Shaohua Li [Fri, 21 Sep 2012 06:32:32 +0000 (08:32 +0200)]
Correctly apply size percentage for file iosize

The size percentage should be applied first when calculating file iosize,
otherwise it's a nop.

Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoKill some newly added whitespace
Jens Axboe [Thu, 20 Sep 2012 17:23:02 +0000 (19:23 +0200)]
Kill some newly added whitespace

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agooptions: wire up e4defrag and falloc engines
Jens Axboe [Thu, 20 Sep 2012 11:46:34 +0000 (13:46 +0200)]
options: wire up e4defrag and falloc engines

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoparse: increase max option possible values to 24
Jens Axboe [Thu, 20 Sep 2012 11:46:15 +0000 (13:46 +0200)]
parse: increase max option possible values to 24

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoupdate documentation for falloc and e4defrag engines
Dmitry Monakhov [Thu, 20 Sep 2012 11:37:17 +0000 (15:37 +0400)]
update documentation for falloc and e4defrag engines

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofalloc: fix return value from queue
Dmitry Monakhov [Thu, 20 Sep 2012 11:37:16 +0000 (15:37 +0400)]
falloc: fix return value from queue

Fix mistypo which causes internal assertation failure, this engine
will always return FIO_Q_COMPLETED

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMakefile: break long line
Jens Axboe [Wed, 19 Sep 2012 19:36:18 +0000 (21:36 +0200)]
Makefile: break long line

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoengine: add e4defrag engine
Dmitry Monakhov [Wed, 19 Sep 2012 19:22:56 +0000 (23:22 +0400)]
engine: add e4defrag engine

IO engine that does regular EXT4_IOC_MOVE_EXT ioctls to simulate
defragment activity

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoioengine: Add fallocate ioengine
Dmitry Monakhov [Wed, 19 Sep 2012 19:22:55 +0000 (23:22 +0400)]
ioengine: Add fallocate ioengine

IO engine that does regular fallocate to simulate data transfer
as fio ioengine.
 DDIR_READ  does fallocate(,mode=FALLOC_FL_KEEP_SIZE,)
 DDIR_WRITE does fallocate(,mode=0) : fallocate with file extention
 DDIR_TRIM  does fallocate(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)

This engine may be useful to perform various tests:
1) Generation highly fragmentated files
2) Various fs stress testing in parallel with others io activity

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoioengine: allow several external ioengines
Dmitry Monakhov [Wed, 19 Sep 2012 19:22:54 +0000 (23:22 +0400)]
ioengine: allow several external ioengines

Currently only one external ioengine can be exported because
it use hardcoded 'ioengine' symbol, but if we allow external
modules to have ops symbol similar to it's name then several
extrnal engines become possible.

NOTE: Old linking layout preserved

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoexport file_lookup_open
Dmitry Monakhov [Wed, 19 Sep 2012 19:22:53 +0000 (23:22 +0400)]
export file_lookup_open

generic_open_file is not always appropriate method, but other modules
may want to implement similar callback and use hash optimization.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofusion-aw-sync: fixup GPL disclaimer
Jens Axboe [Wed, 19 Sep 2012 06:35:17 +0000 (08:35 +0200)]
fusion-aw-sync: fixup GPL disclaimer

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWire up fusion-aw-sync engine
Jens Axboe [Tue, 18 Sep 2012 21:55:43 +0000 (23:55 +0200)]
Wire up fusion-aw-sync engine

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd support for Fusion-io atomic write engine
Santhosh Koundinya [Tue, 18 Sep 2012 21:20:21 +0000 (23:20 +0200)]
Add support for Fusion-io atomic write engine

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd --output-format command line option
Jens Axboe [Mon, 17 Sep 2012 11:34:16 +0000 (13:34 +0200)]
Add --output-format command line option

Right now we have normal, terse, and json output. Lets add a parameter
that controls how to output results, instead of having options for
both terse and json outputs. If we are going to add a 4th output
type in the future, it's only going to get more messy.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd a simple json encoder and use it to print fio output in json format
Shaohua Li [Mon, 17 Sep 2012 07:12:18 +0000 (09:12 +0200)]
Add a simple json encoder and use it to print fio output in json format

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoDefault to terse version 3
Jens Axboe [Fri, 14 Sep 2012 21:35:08 +0000 (23:35 +0200)]
Default to terse version 3

4 will include the trim output, and we'll augment that with json output
as well. To avoid breaking anyone who's using the git pulls for their
testing, we'll default to version 3 for now.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd ddir_rw_sum()
Jens Axboe [Fri, 14 Sep 2012 06:59:20 +0000 (08:59 +0200)]
Add ddir_rw_sum()

We sum up the three data direction primitives a lot, this is
more readable.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd support for trim as a workload type
Shaohua Li [Fri, 14 Sep 2012 06:49:43 +0000 (08:49 +0200)]
Add support for trim as a workload type

This only works on Linux so far, and it's always sync given what
the interface to the kernel looks like. Also restricted to pure
block devices.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agowindows: reduce block size used in posix_fallocate()
Bruce Cran [Thu, 6 Sep 2012 15:08:49 +0000 (09:08 -0600)]
windows: reduce block size used in posix_fallocate()

Reduce the buffer size in posix_fallocate() to avoid
compatability problems.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agolibaio: use INT_MAX to signal that we don't want the ring buffer
Jens Axboe [Thu, 6 Sep 2012 15:07:44 +0000 (09:07 -0600)]
libaio: use INT_MAX to signal that we don't want the ring buffer

We can't use 0 since the libaio library _also_ checks the
nr_events being passed in. So lets use INT_MAX instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agolibaio: pass in 0 for queue depth if we can
Jens Axboe [Tue, 4 Sep 2012 17:47:00 +0000 (11:47 -0600)]
libaio: pass in 0 for queue depth if we can

We don't need the user ring, unless the job file specified
that we need it. So tell the kernel. Fall back to passing
in the normal queue depth, if the kernel doesn't support
disabling the user ring.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofio:modify a deprecated parameter(change timeout to runtime)
liang xie [Fri, 31 Aug 2012 15:22:42 +0000 (08:22 -0700)]
fio:modify a deprecated parameter(change timeout to runtime)

since "timeout" had been deprecated long long ago, we should replace
to "runtime" both in code and docs

Signed-off-by: Liang Xie <xieliang@xiaomi.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFixup README indentation
xieliang [Fri, 31 Aug 2012 15:11:26 +0000 (08:11 -0700)]
Fixup README indentation

Some tabs were missing.

Signed-off-by: xieliang <xieliang@xiaomi.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoREADME: update for newer client job file argument format
Jens Axboe [Sun, 26 Aug 2012 17:32:22 +0000 (19:32 +0200)]
README: update for newer client job file argument format

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoclient: support per-client job files
Jens Axboe [Sun, 26 Aug 2012 15:30:45 +0000 (17:30 +0200)]
client: support per-client job files

Currently the fio network client sends all job files to all clients.
This isn't very flexible.

Add support for specifying a specific job file for each client. Example:

$ fio --client hostname1 jobfile1 --client hostname2 jobfile2

would before add jobfile1 and jobfile2 as job files for both clients.
With this change, only jobfile1 is sent to hostname1, and only
jobfile2 is sent to hostname2.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoexample: add SSD steady state test case
Jens Axboe [Wed, 22 Aug 2012 18:42:46 +0000 (20:42 +0200)]
example: add SSD steady state test case

Simple test case:

- Start by filling a drive with large block sequential writes
- Once that is done, start filling it with random 4k writes.

At some point the latter phase will hit steady state. Progress
is logged.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFio 2.0.9 fio-2.0.9
Jens Axboe [Wed, 22 Aug 2012 06:07:34 +0000 (08:07 +0200)]
Fio 2.0.9

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWindows fio: implement some more POSIX functions
Bruce Cran [Tue, 21 Aug 2012 13:45:57 +0000 (15:45 +0200)]
Windows fio: implement some more POSIX functions

Implement opendir, closedir, readdir, and basic openlog, closelog and
syslog functionality on Windows.

Remove inet_aton since it wasn't being used.

Remove warning that msync isn't implemented - just return an error.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoeta: make CR= display more easy to understand
Jens Axboe [Mon, 20 Aug 2012 12:44:22 +0000 (14:44 +0200)]
eta: make CR= display more easy to understand

Currently we sum up read and write IOPS/BW rates, but that reads
a bit strange when a given workload only does reads OR writes.
The user then thinks that fio mis-parsed the setting, reading
twice as much as expected.

Only sum up for the read OR write side if one direction is given.
For a mixed workload, it's still the sum of both.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWindows fio fixes
Bruce Cran [Fri, 17 Aug 2012 13:10:04 +0000 (15:10 +0200)]
Windows fio fixes

Here's the latest set of Windows fio fixes:

Windows posix.c fixes

Reset the file pointer at the end of posix_fallocate().
Use 64-bit versions of tell() and seek().
Fix basename().
Use uint64_t instead of unsigned long long.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFixing wraparound behavior for time-based sequential read jobs
Dan Ehrenberg [Thu, 16 Aug 2012 06:58:21 +0000 (08:58 +0200)]
Fixing wraparound behavior for time-based sequential read jobs

Previously, a buggy patch made sequential jobs wrap around when they
reached an offset of 'size'. However, the appropriate wraparound is at
size + initial offset. This patch restores the previous behavior.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofix 32-bit Windows fio (overflow in getusage and gettimeofday)
Bruce Cran [Thu, 16 Aug 2012 06:49:41 +0000 (08:49 +0200)]
fix 32-bit Windows fio (overflow in getusage and gettimeofday)

Fix overflow in getrusage and gettimeofday for 32-bit versions of fio
on Windows.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofio: add nanosleep() to Windows
Bruce Cran [Wed, 15 Aug 2012 18:24:24 +0000 (20:24 +0200)]
fio: add nanosleep() to Windows

I've attached a patch which adds an implementation of nanosleep() to
Windows, fixing rate-limiting.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofio Makefile improvement - don't override $(CC)
Jens Axboe [Tue, 14 Aug 2012 12:34:32 +0000 (14:34 +0200)]
fio Makefile improvement - don't override $(CC)

I tried to build fio 2.0.8 today and found that the Makefile
unconditionally sets CC.
Since I've only got clang on my FreeBSD box it needs to avoid overriding
the default.

Use the default system compiler - don't override $(CC) if already set.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agomutex: make 0/1 FIO_MUTEX_LOCKED and FIO_MUTEX_UNLOCKED
Jens Axboe [Thu, 2 Aug 2012 09:21:36 +0000 (11:21 +0200)]
mutex: make 0/1 FIO_MUTEX_LOCKED and FIO_MUTEX_UNLOCKED

Makes the API look cleaner.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agodiskutil: ensure that we lock around disk_list access
Jens Axboe [Thu, 2 Aug 2012 06:27:41 +0000 (08:27 +0200)]
diskutil: ensure that we lock around disk_list access

And also ensure that before we free the disk util structures,
we wait for the disk util thread to exit.

This is v2 of the patch. Commit feb41855 had a bug where it
would deadlock on the disk_util_mutex, when handling drives
that had slaves (lvm/md).

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoRevert "diskutil: ensure that we lock around disk_list access"
Jens Axboe [Wed, 1 Aug 2012 18:25:53 +0000 (20:25 +0200)]
Revert "diskutil: ensure that we lock around disk_list access"

This reverts commit feb418556a236aa041a625b083d6b99e55d23d74.

It causes hangs, needs further testing.

7 years agodiskutil: ensure that we lock around disk_list access
Jens Axboe [Wed, 1 Aug 2012 07:39:36 +0000 (09:39 +0200)]
diskutil: ensure that we lock around disk_list access

And also ensure that before we free the disk util structures,
we wait for the disk util thread to exit.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix fallocate erroneously returning ENOSYS on Linux systems
Wade Cline [Wed, 1 Aug 2012 06:45:48 +0000 (08:45 +0200)]
Fix fallocate erroneously returning ENOSYS on Linux systems

Currently, the helpers.c file provides a function defintion for Linux
fallocate that sets errno to ENOSYS and returns failure; this is useful
for a non-Linux OS. However, this definition will override the Linux
implementation of fallocate when 'fallocate=keep' is set. Adding a
preprocessor macro to check if Linux fallocate is defined fixes this
issue.

Signed-off-by: Wade Cline <wcline@us.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Tue, 26 Jun 2012 22:20:12 +0000 (18:20 -0400)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

7 years agoAdd missing arch_mips
Jens Axboe [Tue, 26 Jun 2012 20:24:36 +0000 (16:24 -0400)]
Add missing arch_mips

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoInclude end-of-run time in the output
Jens Axboe [Thu, 14 Jun 2012 13:11:15 +0000 (15:11 +0200)]
Include end-of-run time in the output

When results are stored, it's convenient to be able to tell
when they were run.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoRevert "blktrace: use for_each_file() instead of open coding the loop"
Jens Axboe [Mon, 11 Jun 2012 11:19:13 +0000 (13:19 +0200)]
Revert "blktrace: use for_each_file() instead of open coding the loop"

There's another bug in where we don't have the number of
files in replay mode correctly stored in td->o.nr_files. So
revert this until that bug is fixed as well.

This reverts commit adfc73488616bac66f910d53c75202d5be8afe87.

7 years agoblktrace: use for_each_file() instead of open coding the loop
Jens Axboe [Mon, 11 Jun 2012 06:58:42 +0000 (08:58 +0200)]
blktrace: use for_each_file() instead of open coding the loop

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix "fio: file hash not empty on exit" with blktrace replay
Shaohua Li [Mon, 11 Jun 2012 06:56:32 +0000 (08:56 +0200)]
Fix "fio: file hash not empty on exit" with blktrace replay

There are two problems:
1. blktrace data hasn't file close action
2. redirect file fileno isn't correct

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd a more verbose/immediate warning if we fail open with O_DIRECT
Jens Axboe [Mon, 11 Jun 2012 06:53:53 +0000 (08:53 +0200)]
Add a more verbose/immediate warning if we fail open with O_DIRECT

If we get EINVAL with O_DIRECT open of the file, then that means
that the file system does not support direct IO. Warn as such
from fio.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWindows 32-bit fio fixes
Bruce Cran [Fri, 8 Jun 2012 06:12:20 +0000 (08:12 +0200)]
Windows 32-bit fio fixes

Fix no-op shift in shmget by casting to 64-bit.
Generate a new Product GUID for fio 2.0.8.
Add the 32-bit MinGW-w64 compiler executable name in Makefile.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoEnsure that non-git basic installs return sane version information
Jens Axboe [Wed, 6 Jun 2012 06:20:27 +0000 (08:20 +0200)]
Ensure that non-git basic installs return sane version information

If git wasn't available, we'd return 2.0.8 as the version info
instead of fio-2.0.8 like we otherwise would.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFio 2.0.8 fio-2.0.8
Jens Axboe [Tue, 29 May 2012 11:29:12 +0000 (13:29 +0200)]
Fio 2.0.8

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoeta: ETA bandwidth was off by 1.024
Jens Axboe [Fri, 11 May 2012 18:33:02 +0000 (20:33 +0200)]
eta: ETA bandwidth was off by 1.024

Same fix as 033bbb51 essentially. Since mtime is a 1000th of a second,
for the usual option of having 1024 be the KB base, we end up being
off by 1.024 if we don't multiply by 1000 before dividing by the
runtime (and then dividing by 1024 to get to next power-of-2).

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix hyphen as minus sign errors by escaping minus signs.
Martin Steigerwald [Mon, 7 May 2012 15:06:54 +0000 (17:06 +0200)]
Fix hyphen as minus sign errors by escaping minus signs.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix manpage error warning: macro `hostname'' not defined.
Martin Steigerwald [Mon, 7 May 2012 15:06:26 +0000 (17:06 +0200)]
Fix manpage error warning: macro `hostname'' not defined.

Fix manpage error warning: macro `hostname'' not defined by using
different line wrapping.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix spelling error in manpage.
Martin Steigerwald [Mon, 7 May 2012 15:06:13 +0000 (17:06 +0200)]
Fix spelling error in manpage.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix terse bandwidth
Jens Axboe [Mon, 7 May 2012 07:46:40 +0000 (09:46 +0200)]
Fix terse bandwidth

Off by 1.024

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Wed, 2 May 2012 12:29:21 +0000 (14:29 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

7 years agoRemove deprecated rwmixcycle option from the man page
Jens Axboe [Wed, 2 May 2012 11:59:09 +0000 (13:59 +0200)]
Remove deprecated rwmixcycle option from the man page

It has no effect, remove it.

Suggested-by: Roger Sibert <Roger_Sibert@xyratex.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd create_only option
Jens Axboe [Wed, 2 May 2012 11:58:02 +0000 (13:58 +0200)]
Add create_only option

If this option is set, then fio will only run the preparation
phase of a job. This means it will create all the files it
needs, but exit after that.

Suggested-by: Georg Schönberger <gschoenberger@thomas-krenn.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix man page type
Jens Axboe [Thu, 26 Apr 2012 17:39:47 +0000 (19:39 +0200)]
Fix man page type

"one" -> "done".

Reported-by: Roger Sibert <Roger_Sibert@xyratex.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agofio: Add to cgroup if parameter "cgroup" is enabled.
Tao Ma [Thu, 26 Apr 2012 10:15:46 +0000 (12:15 +0200)]
fio: Add to cgroup if parameter "cgroup" is enabled.

Currently, we only add the tasks to cgroup if cgroup_weight is set by
the user. But if we want to test other blkcg parameters like block
throttle, the fio tasks isn't added to the corresponding cgroup and
it doesn't make sense.

So add the task to the corresponding cgroup if the cgroup name is given.

Signed-off-by: Tao Ma <boyu.mt@taobao.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix for crash with more than ~500 jobs
Jens Axboe [Wed, 18 Apr 2012 18:39:48 +0000 (20:39 +0200)]
Fix for crash with more than ~500 jobs

We simply overwrite our status output buffer, not a terribly
good idea.

Reported-by: Roger Sibert <Roger_Sibert@xyratex.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWindows build fixes
Bruce Cran [Mon, 16 Apr 2012 17:33:03 +0000 (19:33 +0200)]
Windows build fixes

Bruce writes:

SIGUSR1 isn't defined on Windows so I've defined it.

Also, MSI packages need a version string of x.x.x.x where x is between 0
and 65535 so we can't include the git hash. It's easier just to go back
to hard-coding the version for now, and I'll update it (and the product
GUID) when I create a new package (it doesn't need checked in each
time).

Also, Cygwin doesn't like $(SHELL_PATH) but $(SHELL) seems to work -
does $(SHELL) cause a problem on other platforms?

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoEnlarge probe version field
Jens Axboe [Mon, 16 Apr 2012 09:44:48 +0000 (11:44 +0200)]
Enlarge probe version field

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoGet rid of fio_version.h
Jens Axboe [Mon, 16 Apr 2012 07:52:22 +0000 (09:52 +0200)]
Get rid of fio_version.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix for non-git versions
Jens Axboe [Fri, 13 Apr 2012 17:18:49 +0000 (19:18 +0200)]
Fix for non-git versions

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoEnsure that init depends on FIO-VERSION-FILE
Jens Axboe [Fri, 13 Apr 2012 12:06:08 +0000 (14:06 +0200)]
Ensure that init depends on FIO-VERSION-FILE

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Conflicts:

Makefile

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoDocument the use of the USR1 signal for dumping runtime statistics
Jens Axboe [Thu, 12 Apr 2012 07:18:38 +0000 (09:18 +0200)]
Document the use of the USR1 signal for dumping runtime statistics

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix repeated link of fio
Jens Axboe [Wed, 11 Apr 2012 20:24:19 +0000 (22:24 +0200)]
Fix repeated link of fio

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMake fio include the git version in the version output
Jens Axboe [Wed, 11 Apr 2012 20:07:07 +0000 (22:07 +0200)]
Make fio include the git version in the version output

Makes it easier in bug reporting, don't have to ask people what
they are running...

Here's to you, Kep.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Conflicts:

Makefile

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoDefine SIGUSR1 to inform fio to dump run stats while continuing to run
Jens Axboe [Fri, 30 Mar 2012 08:30:35 +0000 (10:30 +0200)]
Define SIGUSR1 to inform fio to dump run stats while continuing to run

For long running jobs, it may be interesting to see the stats without
having to terminate the job. Set up SIGUSR1 so that it does that,
gives you the stats at that point in time.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFree disk util on exit, not on stats display
Jens Axboe [Fri, 30 Mar 2012 06:33:27 +0000 (08:33 +0200)]
Free disk util on exit, not on stats display

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFio 2.0.7 fio-2.0.7
Jens Axboe [Wed, 11 Apr 2012 12:49:06 +0000 (14:49 +0200)]
Fio 2.0.7

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoHOWTO: typo: write_log_log -> write_lat_log + use suffix
Lucian Adrian Grijincu [Fri, 6 Apr 2012 00:18:35 +0000 (18:18 -0600)]
HOWTO: typo: write_log_log -> write_lat_log + use suffix

- I guess 'write_log_log' was a copy-pasta typo.

- You used 'suffix' everywhere except for two places where you said
  'postfix'.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agogroup reporting: fix bad values of min/max
Jens Axboe [Thu, 5 Apr 2012 14:42:11 +0000 (08:42 -0600)]
group reporting: fix bad values of min/max

If you look at the fio output, the group reporting min and max
bandwidth don't match what the actual job reports. This is due
to an error in calculating the min and max values. The aggregate
value is correct, and matches what the job reports.

This did not affect the values that are usually used for reporting,
it's only affecting the group run status output.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoiolog: remove assert in io_u overlap
Jens Axboe [Wed, 4 Apr 2012 20:11:58 +0000 (14:11 -0600)]
iolog: remove assert in io_u overlap

This can happen very rarely for time based jobs. Before we
had this as an assert since it was an impossible to hit
condition, but now it can be expected very rarely with
verify and time based jobs.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWindows fixes
Bruce Cran [Wed, 4 Apr 2012 14:35:13 +0000 (08:35 -0600)]
Windows fixes

Only return from fio_windowsaio_getevents if the minimum number of IOs has
completed.

Add posix_fallocate implementation to avoid extending the file during the test.

Move call to ResetEvent into windowsaio_getevents where other reset code is
located.

Fix tabs vs. spaces in windowsaio.c and the installer sources.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix address truncation on Windows
Bruce Cran [Wed, 4 Apr 2012 00:00:00 +0000 (18:00 -0600)]
Fix address truncation on Windows

Avoid having PAGE_ALIGN truncate addresses by using a pointer-sized
variable for the page size and mask.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoHOWTO: emphasize units in --minimal mode: latency in usec, bw in KB/s
Lucian Adrian Grijincu [Tue, 3 Apr 2012 20:42:48 +0000 (14:42 -0600)]
HOWTO: emphasize units in --minimal mode: latency in usec, bw in KB/s

It wasn't clear what unit were used in --minimal mode.

Signed-off-by: Lucian Adrian Grijincu <lucian@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd indication of whether a job got killed
Jens Axboe [Mon, 2 Apr 2012 16:47:09 +0000 (09:47 -0700)]
Add indication of whether a job got killed

We have 'X' for exited with error, add 'K' for killed by
signal as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoHOWTO: update to note base of latencies in minimal/terse output
Jens Axboe [Mon, 2 Apr 2012 14:03:26 +0000 (07:03 -0700)]
HOWTO: update to note base of latencies in minimal/terse output

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoEnhance the reaped status display
Jens Axboe [Fri, 30 Mar 2012 19:21:20 +0000 (21:21 +0200)]
Enhance the reaped status display

Instead of just printing a '_' for a job that has exited,
allow the user to tell if the job exited with an error or
not. A normally reaped job that ran to completion without
errors will have the '_' displayed. If the job exited with
an error, then an 'X' will be displayed instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>