Jens Axboe [Wed, 7 Nov 2012 10:40:03 +0000 (11:40 +0100)]
rbtree: add rb_next()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 7 Nov 2012 10:39:30 +0000 (11:39 +0100)]
zipf/pareto: mix blocks with hashing
We don't want to favor any end of the block spectrum.
Mix with a hash.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 18:02:53 +0000 (19:02 +0100)]
genzip updates
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 15:15:58 +0000 (16:15 +0100)]
t/genzipf update
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 15:09:14 +0000 (16:09 +0100)]
Add t/genzipf to play with distribution settings
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 15:05:50 +0000 (16:05 +0100)]
zipf: needs inttypes.h
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 12:50:32 +0000 (13:50 +0100)]
Add pareto distribution randomizer
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 09:52:32 +0000 (10:52 +0100)]
Add forgotten minmax.h include file
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 6 Nov 2012 09:52:06 +0000 (10:52 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Tue, 6 Nov 2012 09:49:42 +0000 (10:49 +0100)]
Add sample zipf distribution randomizer
Instead of just doing purely random IO where each block is
touched exactly (or close to, depending on random map) once,
add a zipf distribution scheme where a selectable theta
defines the spread and frequency of blocks read/written.
Committing this so I don't lose it. Needs a few changes,
for instance we need to hash the zipf output so that
the spread doesn't always just favor the lower LBA range.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 2 Nov 2012 15:47:03 +0000 (16:47 +0100)]
smalloc: move to size_t for allocations
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 2 Nov 2012 15:36:16 +0000 (16:36 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Fri, 2 Nov 2012 15:35:18 +0000 (16:35 +0100)]
smalloc: fix int truncation issue
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 24 Oct 2012 14:37:45 +0000 (16:37 +0200)]
Add max_latency option
If set, fio will exit if it sees a total IO latency that exceeds
this value.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 24 Oct 2012 12:16:45 +0000 (14:16 +0200)]
rdma: cleanup and fixes
Mostly style cleanups, but also a fix for checking and using
OS rand if set. rdma should just always use the internal rand
generator.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 24 Oct 2012 12:06:35 +0000 (14:06 +0200)]
rdma: fixup compile issue
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 24 Oct 2012 07:14:24 +0000 (09:14 +0200)]
rdma: use private random state
We can't reuse td->__random_state as that will impact the sequence
of offsets we generate for random IO.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Yufei Ren [Tue, 23 Oct 2012 01:29:38 +0000 (21:29 -0400)]
rdma ioengine improvement
1) Use fio shipped reentrant and thread-safe rand to replace buggy rand().
2) Add a pause time period before client start committing IOs.
In SEND/RECV test, it's a good practice to setup the iodepth of
of the RECV side deeper than that of the SEND side to
avoid RNR (receiver not ready) error. The
SEND side may send so many unsolicited message before
RECV side commits sufficient recv buffers into recv queue.
This may lead to RNR error. Here, SEND side pauses for a while
during which RECV side commits sufficient recv buffers.
3) Fix server thread hanging bug.
For RDMA WRITE/READ test, No IO bytes are accumulated in server side
during test. Server thread indicates its task completion by changing
its state into `done' as an alternitive. Add `td->done' checking in
do_io().
4) Some comments revision.
export EXTFLAGS and EXTLIBS with '+=".
explanation on exchanging steps of RDMA ioengine control messages.
All these changes are tested in 40Gbps RoCE and 56Gbps InfiniBand testbeds.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Yufei Ren [Tue, 23 Oct 2012 01:29:37 +0000 (21:29 -0400)]
Replace FIO_HAVE_RUSAGE_THREAD with RUSAGE_THREAD
RUSAGE_THREAD is a more clear macro to enable getrusage() thread support.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 23 Oct 2012 18:58:35 +0000 (20:58 +0200)]
Add LICENSE file specyfing what I expect from people using fio
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 22 Oct 2012 18:36:26 +0000 (20:36 +0200)]
backend: only check bytes_done for engines without FIO_NOIO
This basically reverts the functional part of commit
2557f7e6.
Instead of having to fiddle with the io_u manually, have
the backend check whether we expect data to have been transerred
or not.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Yufei Ren [Sat, 20 Oct 2012 03:11:52 +0000 (23:11 -0400)]
Fine-grained job level numa control
Two new options, numa_cpu_nodes and numa_mem_policy, are created
for a fine-grained job level numa control. Please refer HOWTO and
README for detailed description.
A example job, examples/numa, is added as well.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Yufei Ren [Sat, 20 Oct 2012 03:11:50 +0000 (23:11 -0400)]
thread cpu resource statistics bug fix
If `thread' option is enabled, resource usage should be thread
based instead of process based. For the following job,
fio --ioengine=cpuio --cpuload=50 --time_based --runtime=10 --name=j0 --numjobs=4 --thread
before patch, each thread CPU statistics:
...
cpu : usr=199.67%, sys=0.14%, ctx=1475, majf=0, minf=24
...
after patch:
...
cpu : usr=49.80%, sys=0.00%, ctx=79, majf=0, minf=
18446744073709538943
...
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Yufei Ren [Sat, 20 Oct 2012 03:11:49 +0000 (23:11 -0400)]
cpuio engine cpuload bug fix
Current cpu ioengine always bruns out 100 percent cpu cycles
no matter what the cpuload value is. Since no data is transferred
with cpuio, bytes_done would be ZERO. Consequently, think_time
is omitted and loops keeps running.
A cpuio example is added as well.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 20 Oct 2012 17:55:50 +0000 (19:55 +0200)]
Update REPORTING-BUGS
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 10 Oct 2012 22:39:02 +0000 (16:39 -0600)]
Fio 2.0.10
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Bruce Cran [Wed, 10 Oct 2012 15:34:13 +0000 (16:34 +0100)]
Windows: handle SIGBREAK.
The only way to send a POSIX-style signal from another application on Windows
is to use GenerateConsoleCtrlEvent with either CTRL_C_EVENT or
CTRL_BREAK_EVENT. CTRL_BREAK_EVENT is the only one which gets through to
applications, so add a signal handler for it to allow fio to quit cleanly.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Bruce Cran [Wed, 10 Oct 2012 15:24:16 +0000 (16:24 +0100)]
Windows: avoid large writes during file layout.
Avoid large buffered writes during file layout by flushing changes to disk by
calling _commit() after each write.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 10 Oct 2012 15:09:59 +0000 (09:09 -0600)]
HOWTO: indentation fix
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Fri, 21 Sep 2012 13:06:23 +0000 (15:06 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
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>
Jens Axboe [Fri, 21 Sep 2012 06:36:24 +0000 (08:36 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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.
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>
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>
Jens Axboe [Tue, 26 Jun 2012 22:20:12 +0000 (18:20 -0400)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
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>
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>
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.
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>
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>
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>
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>
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>
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>
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>
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>