Jens Axboe [Tue, 4 Dec 2012 08:43:11 +0000 (09:43 +0100)]
options: add category/group to random_generator/random_distribution
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 3 Dec 2012 20:12:59 +0000 (21:12 +0100)]
gfio: add check for unnecessary g_thread_init() call
Annoying gtk likes to spew annoying deprecated warnings.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 3 Dec 2012 20:01:41 +0000 (21:01 +0100)]
gfio: fix Makefile typo for cleaning gfio objs
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 3 Dec 2012 13:38:08 +0000 (14:38 +0100)]
gfio: bad merge in Makefile
Inadverdently dropped lib/prio_tree.c, which we use for graph
tooltips.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 3 Dec 2012 13:37:23 +0000 (14:37 +0100)]
Merge branch 'master' into gfio
Conflicts:
Makefile
fio.h
io_u.c
ioengine.h
memory.c
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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.
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>
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>
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>
Jens Axboe [Fri, 30 Nov 2012 18:37:46 +0000 (19:37 +0100)]
Cache layout improvements
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
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>
Jens Axboe [Thu, 29 Nov 2012 20:56:06 +0000 (21:56 +0100)]
Merge branch 'rand-map'
Jens Axboe [Thu, 29 Nov 2012 20:48:55 +0000 (21:48 +0100)]
solaris: enable fadvise()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Mon, 26 Nov 2012 07:43:47 +0000 (08:43 +0100)]
Add LFSR generator
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Thu, 15 Nov 2012 22:38:32 +0000 (15:38 -0700)]
Document random distribution
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
Jens Axboe [Thu, 15 Nov 2012 20:57:29 +0000 (13:57 -0700)]
Merge branch 'master' into gfio
Conflicts:
libfio.c
server.c
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
Jens Axboe [Thu, 15 Nov 2012 14:52:13 +0000 (07:52 -0700)]
server: properly reset state_number in fio_reset_state()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
Jens Axboe [Wed, 14 Nov 2012 21:25:31 +0000 (14:25 -0700)]
Merge branch 'master' into gfio
Conflicts:
Makefile
backend.c
client.c
fio.h
options.c
parse.c
parse.h
server.c
server.h
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Fri, 9 Nov 2012 08:05:24 +0000 (09:05 +0100)]
genzipf: more features
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Wed, 7 Nov 2012 15:12:43 +0000 (16:12 +0100)]
zipf: cleanup
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
Jens Axboe [Wed, 7 Nov 2012 12:40:01 +0000 (13:40 +0100)]
Makefile: typo
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 7 Nov 2012 12:39:18 +0000 (13:39 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
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>
Jens Axboe [Wed, 7 Nov 2012 10:43:50 +0000 (11:43 +0100)]
genzipf: improve accuracy
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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 [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>
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>
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>
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>