fio.git
11 years agolfsr: crank it 128 times before using the sequence
Jens Axboe [Tue, 27 Nov 2012 07:21:18 +0000 (08:21 +0100)]
lfsr: crank it 128 times before using the sequence

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoEnsure that lfsr_init() is always called
Jens Axboe [Mon, 26 Nov 2012 18:59:14 +0000 (19:59 +0100)]
Ensure that lfsr_init() is always called

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoAdd LFSR generator
Jens Axboe [Mon, 26 Nov 2012 07:43:47 +0000 (08:43 +0100)]
Add LFSR generator

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoRestore BUSY_OK bypassing of bitmap
Jens Axboe [Thu, 22 Nov 2012 14:14:17 +0000 (15:14 +0100)]
Restore BUSY_OK bypassing of bitmap

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoKill now unused bitmap defines from legacy code
Jens Axboe [Thu, 22 Nov 2012 14:12:05 +0000 (15:12 +0100)]
Kill now unused bitmap defines from legacy code

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agobitmap: kill debug code
Jens Axboe [Thu, 22 Nov 2012 12:59:34 +0000 (13:59 +0100)]
bitmap: kill debug code

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agobitmap: fix bit_masks[] for 32-bit compiles
Jens Axboe [Thu, 22 Nov 2012 12:52:56 +0000 (13:52 +0100)]
bitmap: fix bit_masks[] for 32-bit compiles

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoRework file random map
Jens Axboe [Thu, 22 Nov 2012 12:50:29 +0000 (13:50 +0100)]
Rework file random map

Fio slows down at the end of a random IO run, when the random
map is used and it gets fuller. This causes slowdowns in
IOPS. This is largely due to the file random map being an
array of bits, and with random access to single bits of the
array at the time, locality is awful. The effect is observable
throughout a run, though, where it gradually gets slower and
slower. It just becomes more apparent at near the end of the
run, where the last 10% are fairly bad. This is even with
doing a bunch of tricks to reduce that cost.

Implement an N-level bitmap, where layer N uses a single bit
to represent 32/64-bits at layer N-1. The number of layers
depends on the number of blocks.

This has slightly higher overhead initially in theory, in
practice it performs about the same. As a bonus, the throughput
remains constant during the run, and even becomes faster
near the end.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoAdd support for Android
Aaron Carroll [Wed, 21 Nov 2012 09:39:00 +0000 (10:39 +0100)]
Add support for Android

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agomemory: wire up mmap huge page support
Jens Axboe [Tue, 20 Nov 2012 12:39:59 +0000 (13:39 +0100)]
memory: wire up mmap huge page support

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoUse unique seed for zipf/pareto init if rand_repeat is not set
Jens Axboe [Sat, 17 Nov 2012 17:06:36 +0000 (10:06 -0700)]
Use unique seed for zipf/pareto init if rand_repeat is not set

By default, fio uses repeatable random sequences for anything.
This makes it easy to run the same job again. But if this is
disabled, ensure that the zipf/pareto sequences are also
randomized. Re-use the normal random io offset seed for
the random distribution too.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoGenerate a new Windows installer product code for 2.0.11.
Bruce Cran [Sat, 17 Nov 2012 15:12:04 +0000 (08:12 -0700)]
Generate a new Windows installer product code for 2.0.11.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoAdd more examples to the Windows installer.
Bruce Cran [Sat, 17 Nov 2012 15:11:22 +0000 (08:11 -0700)]
Add more examples to the Windows installer.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoFio 2.0.11 fio-2.0.11
Jens Axboe [Thu, 15 Nov 2012 22:40:41 +0000 (15:40 -0700)]
Fio 2.0.11

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoDocument random distribution
Jens Axboe [Thu, 15 Nov 2012 22:38:32 +0000 (15:38 -0700)]
Document random distribution

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoDisable random map automatically if a non-uniform random distribution is given
Jens Axboe [Thu, 15 Nov 2012 22:21:23 +0000 (15:21 -0700)]
Disable random map automatically if a non-uniform random distribution is given

Doesn't make sense to use a map, if the user specifically asked for
a non-uniform distribution.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agogenzipf: add help/usage screen (-h)
Jens Axboe [Thu, 15 Nov 2012 22:19:34 +0000 (15:19 -0700)]
genzipf: add help/usage screen (-h)

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoGet rid of -fno-omit-frame-pointer
Jens Axboe [Thu, 15 Nov 2012 21:58:04 +0000 (14:58 -0700)]
Get rid of -fno-omit-frame-pointer

It costs a bit of performance. And it's trivial to re-enable
for debug/profiling purposes.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agot/genzfip: add -c option for csv output
Vincent Kang Fu [Thu, 15 Nov 2012 20:44:34 +0000 (13:44 -0700)]
t/genzfip: add -c option for csv output

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoserver: properly reset stat_number in fio_reset_state()
Jens Axboe [Thu, 15 Nov 2012 14:51:28 +0000 (07:51 -0700)]
server: properly reset stat_number in fio_reset_state()

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoclient/server: fixup "All clients" reporting
Jens Axboe [Wed, 14 Nov 2012 20:09:45 +0000 (13:09 -0700)]
client/server: fixup "All clients" reporting

We didn't properly account for no group_reporting and multiple
jobs on multiple connections.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoGet rid of uninitialized_var()
Jens Axboe [Tue, 13 Nov 2012 15:31:24 +0000 (08:31 -0700)]
Get rid of uninitialized_var()

It causes complaints on other compilers (clang). One case
was actually not used at all, initialize the rest to 0.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoFix wrong return type on td_error_type()
Jens Axboe [Tue, 13 Nov 2012 15:30:56 +0000 (08:30 -0700)]
Fix wrong return type on td_error_type()

It returns enum error_type_bit, not error_type.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoe4defrag: fix always true comparison
Jens Axboe [Tue, 13 Nov 2012 15:30:30 +0000 (08:30 -0700)]
e4defrag: fix always true comparison

len is unsigned so it is always >= 0.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agojson: fix off-by-one in memory alloc
Jens Axboe [Tue, 13 Nov 2012 12:55:38 +0000 (05:55 -0700)]
json: fix off-by-one in memory alloc

Tighten it a bit too, checking for empty string.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agogenzipf: use regular array + qsort() instead of rbtree
Jens Axboe [Tue, 13 Nov 2012 03:54:12 +0000 (20:54 -0700)]
genzipf: use regular array + qsort() instead of rbtree

Saves lots of allocations, and actually ends up being a bit faster.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoJSON: fix escape of '"' and '\' characters
Jens Axboe [Tue, 13 Nov 2012 03:52:10 +0000 (20:52 -0700)]
JSON: fix escape of '"' and '\' characters

Reported-by: Kepler Kramer <kkramer@fusionio.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agogenzipf: add size and percentage hit rates
Jens Axboe [Sun, 11 Nov 2012 23:04:48 +0000 (16:04 -0700)]
genzipf: add size and percentage hit rates

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agozipf: use 64-bit safe hash for zipf/pareto
Jens Axboe [Sun, 11 Nov 2012 07:27:24 +0000 (08:27 +0100)]
zipf: use 64-bit safe hash for zipf/pareto

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agogenzipf: more features
Jens Axboe [Fri, 9 Nov 2012 08:05:24 +0000 (09:05 +0100)]
genzipf: more features

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoMakefile: 2nd go at making CC assignment/check actually work
Jens Axboe [Thu, 8 Nov 2012 20:56:05 +0000 (21:56 +0100)]
Makefile: 2nd go at making CC assignment/check actually work

This time tested!

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoUse more portable construct for setting/checking CC
Jens Axboe [Thu, 8 Nov 2012 20:46:03 +0000 (21:46 +0100)]
Use more portable construct for setting/checking CC

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoUse ETIMEDOUT instead of ETIME for exceeding max latency
Jens Axboe [Thu, 8 Nov 2012 20:38:35 +0000 (21:38 +0100)]
Use ETIMEDOUT instead of ETIME for exceeding max latency

ETIME isn't very portable...

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agozipf: kill debug "generating series" messages
Jens Axboe [Thu, 8 Nov 2012 12:43:21 +0000 (13:43 +0100)]
zipf: kill debug "generating series" messages

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agozipf: cap range calculation at 10M
Jens Axboe [Thu, 8 Nov 2012 11:45:58 +0000 (12:45 +0100)]
zipf: cap range calculation at 10M

It's fast enough to get rid of the fio.zipf.* file caching,
yet precise enough that we need not care more about it.
Even on a slower machines, generating a sequence of 10M takes
1-2s tops.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoZipf theta must be different than 1.0
Jens Axboe [Thu, 8 Nov 2012 07:36:00 +0000 (08:36 +0100)]
Zipf theta must be different than 1.0

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agozipf: seed zipf/pareto rand with filename hash and job id
Jens Axboe [Wed, 7 Nov 2012 18:47:47 +0000 (19:47 +0100)]
zipf: seed zipf/pareto rand with filename hash and job id

We don't want 4 jobs operating on the same file to use the
same hot spots.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agozipf: cleanup
Jens Axboe [Wed, 7 Nov 2012 15:12:43 +0000 (16:12 +0100)]
zipf: cleanup

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agozipf/pareto: ensure that 0 isn't always the hottest block
Jens Axboe [Wed, 7 Nov 2012 13:04:11 +0000 (14:04 +0100)]
zipf/pareto: ensure that 0 isn't always the hottest block

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoAdd safe checks for valid pareto input value
Jens Axboe [Wed, 7 Nov 2012 12:47:22 +0000 (13:47 +0100)]
Add safe checks for valid pareto input value

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoMakefile: typo
Jens Axboe [Wed, 7 Nov 2012 12:40:01 +0000 (13:40 +0100)]
Makefile: typo

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Wed, 7 Nov 2012 12:39:18 +0000 (13:39 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

11 years agogenzipf: fix off-by-one in output array calculation
Jens Axboe [Wed, 7 Nov 2012 12:35:41 +0000 (13:35 +0100)]
genzipf: fix off-by-one in output array calculation

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agogenzipf: improve accuracy
Jens Axboe [Wed, 7 Nov 2012 10:43:50 +0000 (11:43 +0100)]
genzipf: improve accuracy

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agorbtree: add rb_next()
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>
11 years agozipf/pareto: mix blocks with hashing
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>
11 years agoMake the zipf/pareto state per file
Jens Axboe [Wed, 7 Nov 2012 08:15:45 +0000 (09:15 +0100)]
Make the zipf/pareto state per file

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoMove code around to satisfy t/stest linkage
Jens Axboe [Tue, 6 Nov 2012 21:10:43 +0000 (22:10 +0100)]
Move code around to satisfy t/stest linkage

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoFix t/ieee754 link
Jens Axboe [Tue, 6 Nov 2012 20:54:30 +0000 (21:54 +0100)]
Fix t/ieee754 link

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agogenzip updates
Jens Axboe [Tue, 6 Nov 2012 18:02:53 +0000 (19:02 +0100)]
genzip updates

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agot/genzipf update
Jens Axboe [Tue, 6 Nov 2012 15:15:58 +0000 (16:15 +0100)]
t/genzipf update

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoAdd t/genzipf to play with distribution settings
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>
11 years agozipf: needs inttypes.h
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>
11 years agoAdd pareto distribution randomizer
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>
11 years agoAdd forgotten minmax.h include file
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>
11 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Tue, 6 Nov 2012 09:52:06 +0000 (10:52 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

11 years agoAdd sample zipf distribution randomizer
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>
11 years agosmalloc: move to size_t for allocations
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>
11 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Fri, 2 Nov 2012 15:36:16 +0000 (16:36 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

11 years agosmalloc: fix int truncation issue
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>
11 years agoAdd max_latency option
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>
11 years agordma: cleanup and fixes
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>
11 years agordma: fixup compile issue
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>
11 years agordma: use private random state
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>
11 years agordma ioengine improvement
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>
11 years agoReplace FIO_HAVE_RUSAGE_THREAD with RUSAGE_THREAD
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>
11 years agoAdd LICENSE file specyfing what I expect from people using fio
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>
11 years agobackend: only check bytes_done for engines without FIO_NOIO
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>
11 years agoFine-grained job level numa control
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>
11 years agothread cpu resource statistics bug fix
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>
11 years agocpuio engine cpuload bug fix
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>
11 years agoUpdate REPORTING-BUGS
Jens Axboe [Sat, 20 Oct 2012 17:55:50 +0000 (19:55 +0200)]
Update REPORTING-BUGS

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 years agoFio 2.0.10 fio-2.0.10
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>
11 years agoWindows: handle SIGBREAK.
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>
11 years agoWindows: avoid large writes during file layout.
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>
11 years agoHOWTO: indentation fix
Jens Axboe [Wed, 10 Oct 2012 15:09:59 +0000 (09:09 -0600)]
HOWTO: indentation fix

Signed-off-by: Jens Axboe <axboe@kernel.dk>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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

11 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>
11 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

11 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>
11 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>
11 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>
11 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>
11 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>