Jens Axboe [Tue, 25 Oct 2011 07:52:51 +0000 (09:52 +0200)]
server: cleanup fio_server_parse_string()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 24 Oct 2011 07:35:06 +0000 (09:35 +0200)]
server: document fio_server_parse_string()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 24 Oct 2011 07:11:50 +0000 (09:11 +0200)]
client/server: IPv6 support
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 22 Oct 2011 16:47:21 +0000 (18:47 +0200)]
Fix io_u->buf calculation overflow
Jagadish reports:
----
following are the details of the bug in fio.
This bug in fio can show up as corruption of data when performing verify.
Description:
----------------
if the product of block size and queudepth is greater than 4GB, io_u
buffer will not
be assigned properly due to overflow.
fio --bsrange=256k-4m --ioengine=libaio --iodepth=2064 --direct=1
--name=job3 --offset=2GB --size=14GB --rw=write
--verify_pattern=0xdeadbeef --filename=/dev/sdb
can show false corruption.
Version:
-----------
1.58
Explanation:
-----------------
in a loop fio tries to assign the data buffer to each i/o request.
static int init_io_u(struct thread_data *td)
{
struct io_u *io_u;
unsigned int max_bs;
int cl_align, i, max_units;
char *p;
...
p = td->orig_buffer;
...
for (i = 0; i < max_units; i++) {
...
io_u->buf = p + max_bs * i;
}
}
at max_bs=4M i=1024, the integer overflows and the addresses are being
used again.
i,e i/o request 1024 will have the same data buffer as that of i/o request 0.
This is seen from fio debug log.
mem 11164 io_u alloc 0x219f530, index 0
mem 11164 io_u 0x219f530, mem 0x7f09bb62d000
mem 11164 io_u alloc 0x219f820, index 1
mem 11164 io_u 0x219f820, mem 0x7f09bba2d000
mem 11164 io_u alloc 0x225b530, index 1024
mem 11164 io_u 0x225b530, mem 0x7f09bb62d000
mem 11164 io_u alloc 0x225b820, index 1025
mem 11164 io_u 0x225b820, mem 0x7f09bba2d000
the fix is as follows:
io_u->buf = p + (unsigned long long)max_bs * i;
----
Fix this by continually incrementing 'p' instead, avoiding
the overflow as well.
Reported-by: Jagadish Kumar <jagadish.mukku@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Keplar kramer [Wed, 19 Oct 2011 19:31:27 +0000 (21:31 +0200)]
Fix clat latency terse output
The fio HOWTO shows Completion latency percentiles as coming after
Completion latency stats and before total latency stats.
Completion latency percentiles are actually after total latency stats
and before BW stats.
Patch moves completion percentiles to before total latency stats.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 18 Oct 2011 18:42:04 +0000 (20:42 +0200)]
Fio 1.99.9
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 18 Oct 2011 12:39:30 +0000 (14:39 +0200)]
Turn old debug printf() into a proper log_err()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 18 Oct 2011 11:26:01 +0000 (13:26 +0200)]
Fix klibc getopt_long_only() for optional arguments
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Bruce Cran [Tue, 18 Oct 2011 10:20:56 +0000 (12:20 +0200)]
Fix OSX build
os.h needs to include sys/socket.h.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Bruce Cran [Tue, 18 Oct 2011 10:20:31 +0000 (12:20 +0200)]
Fix printf() being used instead of log_info()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 18 Oct 2011 06:31:01 +0000 (08:31 +0200)]
Fix error in disk util stats for terse output
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 17 Oct 2011 17:58:51 +0000 (19:58 +0200)]
Update command line usage help
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 17 Oct 2011 13:05:47 +0000 (15:05 +0200)]
Add terse version 2 output format
Default is the new format, but allow a user to set version 2 for
easier backwards compatability with older scripts.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 17 Oct 2011 11:31:51 +0000 (13:31 +0200)]
Fio 1.99.8
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 17 Oct 2011 11:31:33 +0000 (13:31 +0200)]
Fix possible use-after-free on client disconnect
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 17 Oct 2011 07:14:42 +0000 (09:14 +0200)]
client: pass back server side error to client exit value
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sun, 16 Oct 2011 19:34:14 +0000 (21:34 +0200)]
client/server: send back nr_jobs and error exit code
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sun, 16 Oct 2011 09:50:31 +0000 (11:50 +0200)]
Fix problem with mixing is_backend and terse_output
Always send disk util and group_run_stats, even if terse
output got set in the server. Also fixes a disk util leak
for !terse_output.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 15 Oct 2011 14:07:40 +0000 (16:07 +0200)]
Fix fragmented package opcode mismatch
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 15 Oct 2011 12:43:41 +0000 (14:43 +0200)]
Don't request ETA until server has started jobs
Otherwise we time out when file layout takes >= 5 seconds.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 15 Oct 2011 12:37:38 +0000 (14:37 +0200)]
Fix strip blank space for empty string
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 15 Oct 2011 12:37:26 +0000 (14:37 +0200)]
Fix off-by-one in fgets() size
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 14 Oct 2011 12:31:06 +0000 (14:31 +0200)]
Fio 1.99.7
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 14 Oct 2011 10:47:56 +0000 (12:47 +0200)]
Pretty up output a bit
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 14 Oct 2011 08:55:16 +0000 (10:55 +0200)]
Memory leak fixes
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 14 Oct 2011 07:30:01 +0000 (09:30 +0200)]
Scale bw output to MB/sec if larger than 99999 KB/sec
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 14 Oct 2011 06:08:10 +0000 (08:08 +0200)]
Add fio version to terse output
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 19:05:59 +0000 (21:05 +0200)]
Only print ts->description if set for non-terse output
Identical to commit
4b0f2258, but for non-terse output.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 18:51:05 +0000 (20:51 +0200)]
Man page typo
.B -> .BI
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 18:17:02 +0000 (20:17 +0200)]
Update man page
Include all command line options.
Add section on client/server. It needs to be formatted properly,
though.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 14:33:51 +0000 (16:33 +0200)]
Fio 1.99.6
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 13:03:25 +0000 (15:03 +0200)]
Check string length of ts->description, not value
It's no longer a pointer. Fix a buglet in the terse output
printing.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 12:12:40 +0000 (14:12 +0200)]
Move IEEE754 support code to lib/
It's not strictly core code.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 12:03:52 +0000 (14:03 +0200)]
Add disk utilization to terse format output
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 11:43:36 +0000 (13:43 +0200)]
Add completion latency percentiles to terse output format
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 11:37:07 +0000 (13:37 +0200)]
Don't output version for terse output
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 11:11:42 +0000 (13:11 +0200)]
Add IOPS to terse output
Bump the terse version format. There will be a few more changes
until version 3 is final, but since it's already changed now,
flag it as a different version. Consider this terse version 3 alpha.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 11:04:56 +0000 (13:04 +0200)]
Update TODO
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 10:02:08 +0000 (12:02 +0200)]
Silence uninitialized mem warning on disk_util send
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 10:00:24 +0000 (12:00 +0200)]
Break double loop on end-of-clat percentiles
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 09:38:56 +0000 (11:38 +0200)]
client/server: add support for passing disk_util structures
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 07:28:21 +0000 (09:28 +0200)]
Adapt clat percentiles for min/max values
Decide between using msec or usec based on the calculated values.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 06:55:29 +0000 (08:55 +0200)]
Disable clat percentiles if gtod_reduce=1 is set
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 06:53:24 +0000 (08:53 +0200)]
Enable completion latency percentiles by default
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 13 Oct 2011 06:50:46 +0000 (08:50 +0200)]
Remove extra \n before printing run status
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 19:33:26 +0000 (21:33 +0200)]
Fio 1.99.5
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 19:20:42 +0000 (21:20 +0200)]
server: fix bug in converting/storing clat percentiles
It helps when you read the source values, instead of storing and
converting the destinations values only.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 19:03:45 +0000 (21:03 +0200)]
Be a bit more defensive in clat percentile calc and display
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 18:32:22 +0000 (20:32 +0200)]
Pretty up clat percentile display so it's actually readable
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 14:07:30 +0000 (16:07 +0200)]
Fix clat percentile display
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 11:48:44 +0000 (13:48 +0200)]
Correct Windows fio version
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 07:47:25 +0000 (09:47 +0200)]
Merge branch 'master' into client-server
Conflicts:
init.c
io_u.c
os/windows/install.wxs
os/windows/version.h
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 07:42:33 +0000 (09:42 +0200)]
Fix bad random offset generation for file map
If OS_RAND_MAX and FRAND_MAX are different, then ensure that
we use the right one. If not, our lookup cache could be outside
the allowed range, thus causing a segfault by indexing
f->file_map beyond end of the array.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Wed, 12 Oct 2011 07:20:34 +0000 (09:20 +0200)]
Fix off-by-one in jobs_eta allocation
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 13:07:23 +0000 (15:07 +0200)]
client: cleanup bit printing
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 12:30:06 +0000 (14:30 +0200)]
server: include 32/64-bit in probe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 12:25:08 +0000 (14:25 +0200)]
client/server: fix ptr <-> uint64_t casting warnings on 32-bit builds
Not actually a bug, but gcc complains.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 12:20:22 +0000 (14:20 +0200)]
client: dec sum_stat_clients if one a client is disconnected
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 12:08:33 +0000 (14:08 +0200)]
client: display summed total of all clients when all stats have been received
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 10:16:32 +0000 (12:16 +0200)]
server: error handling fixes
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 09:45:35 +0000 (11:45 +0200)]
server: assume PID is dead on ESRCH
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Tue, 11 Oct 2011 08:15:51 +0000 (10:15 +0200)]
client/server: track and handle command timeouts
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 19:30:42 +0000 (21:30 +0200)]
Fio 1.99.4
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 19:16:55 +0000 (21:16 +0200)]
server: fread() - check <= 0 return value
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 19:11:09 +0000 (21:11 +0200)]
client: duplicate arguments to "empty" clients
Now you can do:
fio --client=host1 --client=host2 --arg1 --arg2 --arg3
and arg1,2,3 are passed to both clients. If you do:
fio --client=host1 --arg1 --client=host2 --arg2 --arg3
then arg1 is passed to host1, while arg2,3 are passed to host2.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 17:51:26 +0000 (19:51 +0200)]
server: improve pidfile and log handling
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 13:28:58 +0000 (15:28 +0200)]
server: write pid file for backgrounded server to specified file
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 12:36:07 +0000 (14:36 +0200)]
client: properly assign client eta in flight
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 10:14:30 +0000 (12:14 +0200)]
Abstract out and export summation of thread_stats
Client side will need it.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 07:55:21 +0000 (09:55 +0200)]
client/server: few select speedups
Don't alloc/free when we can reuse, and don't calculate string
lengths twice.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 06:56:18 +0000 (08:56 +0200)]
client: track pending ETA requests
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Mon, 10 Oct 2011 06:33:18 +0000 (08:33 +0200)]
init: typo, remove -> remote.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sun, 9 Oct 2011 19:54:10 +0000 (21:54 +0200)]
client/server: request ETA instead of having the server send it automatically
Also changes the 'serial' of the command to a tag, that's passed
back and forth for commands that need to use it.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sun, 9 Oct 2011 10:19:08 +0000 (12:19 +0200)]
client: sum running ETA of jobs
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sun, 9 Oct 2011 10:13:39 +0000 (12:13 +0200)]
client: fix jobs_eta conversion typo
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 8 Oct 2011 19:50:01 +0000 (21:50 +0200)]
Update TODO
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Sat, 8 Oct 2011 19:07:29 +0000 (21:07 +0200)]
Add protocol support for an arbitrary number of command line arguments
Make it more efficient as well, don't pass a lot of potentially
padded space, pass only the exact amount required.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Bruce Cran [Sat, 8 Oct 2011 16:51:22 +0000 (18:51 +0200)]
Fix Windows issue with socklen_t
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Bruce Cran [Sat, 8 Oct 2011 16:50:34 +0000 (18:50 +0200)]
Fix compile on FreeBSD
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 14:35:56 +0000 (16:35 +0200)]
client: used hostname passed back in probe as log prefix
It's better than the connect name/IP/sock.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:41:00 +0000 (13:41 +0200)]
Fio 1.99.3
1.99.2 had a few silly bugs, tag 1.99.3 since I wont be working
on this for the next few days.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:31:23 +0000 (13:31 +0200)]
Makefile: use -O3 by default
Should be safe.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:26:27 +0000 (13:26 +0200)]
Fix warning when clang is used as the compiler
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:24:16 +0000 (13:24 +0200)]
Makefile: move -rdynamic to linking flag
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:11:14 +0000 (13:11 +0200)]
client: pretty up probe output
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:19:28 +0000 (13:19 +0200)]
server: properly configure port without argument
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 11:04:05 +0000 (13:04 +0200)]
client: don't clear client->addr after it's been set
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 10:55:14 +0000 (12:55 +0200)]
server: ensure to set proper port
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 10:47:57 +0000 (12:47 +0200)]
Pass arch/os in probe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 10:23:34 +0000 (12:23 +0200)]
client: fix mem leak
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 10:16:19 +0000 (12:16 +0200)]
Poll server idle loop any time the main status thread sleeps
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:18:51 +0000 (10:18 +0200)]
Fio 1.99.2
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:12:47 +0000 (10:12 +0200)]
server: increase default max pdu length to 1024
It was set low to 64 to debug issues with fragmentation and
defragmentation of packages. Bump version to 3 as well since
this breaks the protocol with older clients.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:11:05 +0000 (10:11 +0200)]
client: remove leftover debug printf()
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:10:18 +0000 (10:10 +0200)]
Split version into separate include fio
Include it from the Windows version file, at least we only have
to update the version in two places now instead of three.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:07:22 +0000 (10:07 +0200)]
Remember to clear client cookie
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:03:44 +0000 (10:03 +0200)]
server: fix bad interpretation of local socket binding
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Fri, 7 Oct 2011 08:00:51 +0000 (10:00 +0200)]
Unify client/server argument
Add documentation as well for client/server.
Get rid of name hash for clients, just pass a cookie back and forth.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 6 Oct 2011 19:33:29 +0000 (21:33 +0200)]
server: fix += -> + typo
We don't want to free inside the range...
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Jens Axboe [Thu, 6 Oct 2011 19:30:10 +0000 (21:30 +0200)]
Update TODO
Add error handling note, remove bind note (that's done).
Signed-off-by: Jens Axboe <axboe@kernel.dk>