fio.git
7 years agocpu clock: round up when dividing by samples
Jens Axboe [Mon, 10 Dec 2012 09:15:59 +0000 (10:15 +0100)]
cpu clock: round up when dividing by samples

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agogettime: fix CPU calibration reported mean
Jens Axboe [Mon, 10 Dec 2012 07:29:56 +0000 (08:29 +0100)]
gettime: fix CPU calibration reported mean

Bug introduced in fa80feae. It only affected the reported mean
if --debug=time was used, cosmetic issue.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agogettime: calibration rounding error
Jens Axboe [Mon, 10 Dec 2012 07:29:03 +0000 (08:29 +0100)]
gettime: calibration rounding error

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoIncrease CPU clock calibration accuracy
Jens Axboe [Mon, 10 Dec 2012 07:07:14 +0000 (08:07 +0100)]
Increase CPU clock calibration accuracy

Lets throw some more loops at it, it reduces the noise.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd check for invariant TSC on x86 and use TSC is default clock if reliable
Jens Axboe [Sun, 9 Dec 2012 19:29:00 +0000 (20:29 +0100)]
Add check for invariant TSC on x86 and use TSC is default clock if reliable

TSC is by far the fastest clock we can use. Check the CPUID bits for
whether it is both constant rate AND synced across cores. If it is,
we can use it as our default clock source.

Fio will default to this clock source on x86 if no other clock source
is specifically given with clocksource= in the job file.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agowindowsaio: create a single completion port during init, associate files during open.
Bruce Cran [Thu, 6 Dec 2012 19:59:42 +0000 (19:59 +0000)]
windowsaio: create a single completion port during init, associate files during open.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoDocument the ioengine=net pingpong= option
Jens Axboe [Thu, 6 Dec 2012 19:53:57 +0000 (20:53 +0100)]
Document the ioengine=net pingpong= option

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix windows out-of-memory handling
Bruce Cran [Thu, 6 Dec 2012 19:33:14 +0000 (20:33 +0100)]
Fix windows out-of-memory handling

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFree io_u related structures before killing IO engine
Bruce Cran [Thu, 6 Dec 2012 19:32:40 +0000 (20:32 +0100)]
Free io_u related structures before killing IO engine

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agowindowsaio: initialize and map windowsaio IO structure to io_u
Jens Axboe [Thu, 6 Dec 2012 19:30:38 +0000 (20:30 +0100)]
windowsaio: initialize and map windowsaio IO structure to io_u

Instead of searching for a free entry everytime we enter
queue, do this when the io_u is setup. It's cleaner and
faster.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoparser: always match the correct option length for posval options
Jens Axboe [Thu, 6 Dec 2012 16:34:57 +0000 (17:34 +0100)]
parser: always match the correct option length for posval options

Right now we match rw=randr as rw=randrw, since we use the length
of the passed in option. Use a correct max of the ival and string
passed in, so that we fail if a full match isn't present.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix man page indentation
Jens Axboe [Wed, 5 Dec 2012 20:15:01 +0000 (21:15 +0100)]
Fix man page indentation

Was broken after the io engines.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agolfsr: add HOWTO and man page documentation
Jens Axboe [Wed, 5 Dec 2012 09:28:08 +0000 (10:28 +0100)]
lfsr: add HOWTO and man page documentation

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agolfsr: ensure that the cycle follows the randrepeat= setting
Jens Axboe [Tue, 4 Dec 2012 12:12:25 +0000 (13:12 +0100)]
lfsr: ensure that the cycle follows the randrepeat= setting

Use the regular block offset seed to "seed" the lfsr generator,
so that it obeys randrepeat=0/1 as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoName the various random offsets we use
Jens Axboe [Tue, 4 Dec 2012 12:10:29 +0000 (13:10 +0100)]
Name the various random offsets we use

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoRevert "Change preferred default clocksource to gettimeofday()"
Jens Axboe [Sat, 1 Dec 2012 14:02:11 +0000 (15:02 +0100)]
Revert "Change preferred default clocksource to gettimeofday()"

This reverts commit f7161017b75f5d3526147d42d3b583973922c444.

clock_gettime() is monotonic, so a superior clock source even
if it is slower.

7 years agoengines/net.c: fix compilation error due to missing signal.h include
Steven Noonan [Sat, 1 Dec 2012 08:16:55 +0000 (08:16 +0000)]
engines/net.c: fix compilation error due to missing signal.h include

Corrects this build failure:

engines/net.c: In function 'fio_netio_terminate':
engines/net.c:900:2: warning: implicit declaration of function 'kill' [-Wimplicit-function-declaration]
engines/net.c:900:16: error: 'SIGUSR2' undeclared (first use in this function)
engines/net.c:900:16: note: each undeclared identifier is reported only once for each function it appears in

Signed-off-by: Steven Noonan <snoonan@amazon.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWire up SIGUSR2 to kill blocking threads
Jens Axboe [Fri, 30 Nov 2012 20:46:06 +0000 (21:46 +0100)]
Wire up SIGUSR2 to kill blocking threads

Get rid of io engine ops SIGTERM flag, it didn't really
work.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoChange preferred default clocksource to gettimeofday()
Jens Axboe [Fri, 30 Nov 2012 18:43:31 +0000 (19:43 +0100)]
Change preferred default clocksource to gettimeofday()

It's faster than clock_gettime()

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoCache layout improvements
Jens Axboe [Fri, 30 Nov 2012 18:37:46 +0000 (19:37 +0100)]
Cache layout improvements

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonet: fix receiver start time
Jens Axboe [Fri, 30 Nov 2012 15:22:31 +0000 (16:22 +0100)]
net: fix receiver start time

Reset epoch/start time to when we get a connection.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonet: add basic ping/pong type workload support
Jens Axboe [Fri, 30 Nov 2012 08:59:20 +0000 (09:59 +0100)]
net: add basic ping/pong type workload support

If you use ioengine=net and then set pingpong=1, fio will operate
in a ping pong type fashion. When the reader receives a package
from the writer, it will return the package to the writer again.
The writer, in turn, will wait for this package before writing
a new package. This makes fio useful for roundrobin measurements
on networks.

The submission latency then measures how long it took to submit
a packet to the local system, while the completion latency is how
long it takes for the package to be received and returned by
the other end.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoverify: treat as failure if given verify type is different from media
Jens Axboe [Fri, 30 Nov 2012 08:39:02 +0000 (09:39 +0100)]
verify: treat as failure if given verify type is different from media

When fio verifies right now, it'll look at the on media stored type
and verify that type. This means that if verify=foo set and we
find older blocks that are written with verify=bar, we will
verify those against bar.

Change this so that if a specific verify type is given, that type
is ALWAYS used for verification. If none is given but asked to
verify, we retain the old behaviour of just verifying based on
the type given in the on-media block.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonet: sent udp open messages
Jens Axboe [Fri, 30 Nov 2012 07:27:46 +0000 (08:27 +0100)]
net: sent udp open messages

The receiver goes directly into recvfrom() when it starts up,
which greatly skews the first submission latency (since it's
measure from when it enters recvfrom() and until we finally
get the first packet from the client). Add a file open
handshake to avoid this issue.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoMerge branch 'rand-map'
Jens Axboe [Thu, 29 Nov 2012 20:56:06 +0000 (21:56 +0100)]
Merge branch 'rand-map'

7 years agosolaris: enable fadvise()
Jens Axboe [Thu, 29 Nov 2012 20:48:55 +0000 (21:48 +0100)]
solaris: enable fadvise()

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix broken 'norandommap'
Jens Axboe [Thu, 29 Nov 2012 20:37:11 +0000 (21:37 +0100)]
Fix broken 'norandommap'

commit 8055e41d broke the option, always falling through to
the failure case.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoparse: fix wrong "might be used unitialized" warning on some compilers
Jens Axboe [Thu, 29 Nov 2012 20:33:03 +0000 (21:33 +0100)]
parse: fix wrong "might be used unitialized" warning on some compilers

GCC 3.4.3 on Solaris, I'm looking at you. Apparently:

if (a || b) {
if (a)
c = foo;
else if (b)
c = bar;

*c = foobar;
}

is too hard to figure out.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoWire up _weak posix_fadvise()
Jens Axboe [Thu, 29 Nov 2012 20:27:20 +0000 (21:27 +0100)]
Wire up _weak posix_fadvise()

The commit adding Android support included a botched
variant of posix_fadvise().

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonet: set runstate to SETTING_UP while waiting for a connection
Jens Axboe [Thu, 29 Nov 2012 19:02:50 +0000 (20:02 +0100)]
net: set runstate to SETTING_UP while waiting for a connection

Otherwise the status print thinks it's running, and displays
bad stats.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonet: exit on WAITALL and !ret
Jens Axboe [Thu, 29 Nov 2012 18:57:35 +0000 (19:57 +0100)]
net: exit on WAITALL and !ret

Otherwise we can loop forever if the other end hung up.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agonet: fix segfault with receiver, tcp, and no hostname set
Jens Axboe [Thu, 29 Nov 2012 13:35:33 +0000 (14:35 +0100)]
net: fix segfault with receiver, tcp, and no hostname set

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agolibfio: don't sent KILL signal to own process from signal handler
Jens Axboe [Thu, 29 Nov 2012 13:24:34 +0000 (14:24 +0100)]
libfio: don't sent KILL signal to own process from signal handler

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoAdd t/axmap tester
Jens Axboe [Wed, 28 Nov 2012 20:29:14 +0000 (21:29 +0100)]
Add t/axmap tester

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoRename the bitmap to axmap
Jens Axboe [Wed, 28 Nov 2012 20:24:46 +0000 (21:24 +0100)]
Rename the bitmap to axmap

It's not really a bitmap, it's a bitmap of bitmaps. Now named.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agobitmap: fix off-by-8 allocation error
Jens Axboe [Wed, 28 Nov 2012 18:36:16 +0000 (19:36 +0100)]
bitmap: fix off-by-8 allocation error

Was multiplying by the bit-size, not the byte-size. No algorithmic
changes, we never used the 7/8ths of the memory at the end...

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix windowsaio IO error handling and document device write access issue on Windows...
Bruce Cran [Tue, 27 Nov 2012 12:16:07 +0000 (12:16 +0000)]
Fix windowsaio IO error handling and document device write access issue on Windows and FreeBSD.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoFix compile for older Linux without mmap MAP_HUGETLB
Jens Axboe [Tue, 27 Nov 2012 07:27:50 +0000 (08:27 +0100)]
Fix compile for older Linux without mmap MAP_HUGETLB

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

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

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

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