fio.git
9 years agoFix overlap io_u into outside regions
Jens Axboe [Tue, 24 May 2011 09:26:16 +0000 (11:26 +0200)]
Fix overlap io_u into outside regions

Test case is a job file ala this:

[global]
ioengine=posixaio
direct=0
filename=testfile
iodepth=128
size=50M
loops=10000000000
group_reporting=1
readwrite=randwrite
do_verify=1
verify=md5
verify_fatal=1
numjobs=1
thread
bsrange=4k:1M

[thread0]
offset=0G

[thread1]
offset=50M

[thread2]
offset=100M

[thread3]
offset=150M

[thread4]
offset=200M

[thread5]
offset=250M

[thread6]
offset=300M

[thread7]
offset=350M

where io_u units from threadN ends up crossing into the zone of threadN+1.
This is due to using file->real_file_size as the boundary check for the
buffer length, where the offset itself is correctly calculated. When
using mixed block sizes, this can cause a blocksize larger than the
minimum size to span into the next region.

Fix this by using file->io_size + offset as the end delimeter. Also
improve the logic of dropping to a smaller allowed block size if we do
end up being close to spanning into the next region.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agosplice: use ->o.memalign to indicate we want aligned buffers
Jens Axboe [Fri, 13 May 2011 19:19:25 +0000 (21:19 +0200)]
splice: use ->o.memalign to indicate we want aligned buffers

Vasilis Liaskovitis reports:

---

I am trying to use the splice ioengine to read/write from/to tmpfs (/dev/shm).

Writing works fine e.g. with the following fio config:
[sw]
rw=write
size=1g
directory=/dev/shm
iodepth=32
direct=0
blocksize=512k
numjobs=1
nrfiles=1
ioengine=splice
loops=1
group_reporting
create_on_open=1
create_serialize=0

But reading the same file afterwards with the splice ioengine fails:
[sw]
rw=read
size=1g
directory=/dev/shm
iodepth=32
direct=0
blocksize=512k
numjobs=1
nrfiles=1
ioengine=splice
loops=1
group_reporting

root@server1:~/fio# ./fio  /root/fior_splice.fio
sw: (g=0): rw=read, bs=512K-512K/512K-512K, ioengine=splice, iodepth=32
fio 1.53
Starting 1 process
fio: pid=17504, err=22/file:filesetup.c:502,
func=open(/dev/shm/sw.1.0), error=Invalid argument
Run status group 0 (all jobs):

Is something misconfigured in the fio read config?
The --debug=all output is:

Starting 1 process
file     17517 setup files
file     17517 get file size for 0x7f2f87451028/0/0x7f2f87451108
diskutil 17517 /dev/shm/sw.1.0 belongs to maj/min 0/17
process  17517 pid=0: runstate 0 -> 1
process  17517 will fork
mutex    17517 wait on startup_mutex
process  17519 jobs pid=17519 started
process  17519 pid=17519: runstate 1 -> 2
mutex    17519 up startup_mutex
mutex    17519 wait on td->mutex
mutex    17517 done waiting on startup_mutex
process  17517 pid=17519: runstate 2 -> 4
mutex    17519 done waiting on td->mutex
mem      17519 Alloc 16777216 for buffers
[...]
file     17519 trying file /dev/shm/sw.1.0 10
file     17519 fd open /dev/shm/sw.1.0
file     17519 file not found in hash /dev/shm/sw.1.0
file     17519 get file /dev/shm/sw.1.0, ref=0
io       17519 invalidate cache /dev/shm/sw.1.0: 0/1073741824
file     17519 fd close /dev/shm/sw.1.0
file     17519 error 1 on open of /dev/shm/sw.1.0
file     17519 get_next_file_rr: (nil)
fio: pid=17519, got signal=11
process  17517 pid=17519: runstate 4 -> 9
process  17517 terminate group_id=-1
process  17517 setting terminate on sw/17519
diskutil 17517 update io ticks

Other fio ioengines (sync, vsync) work fine for both reading/writing
on tmpfs. Also, other splice tests can do both reads and writes to
tmpfs (e.g. splice-cp).

This happens with current fio-master or fio-1.38-1 (debian package)
thanks for any comments,

---

The reason is that splice uses ->o.odirect to set that we want aligned
buffers, but we actually have a flag for that now. So just use that.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.54 fio-1.54
Jens Axboe [Thu, 12 May 2011 18:06:57 +0000 (20:06 +0200)]
Fio 1.54

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix crash on specifying bad IO engine on the command line
Jens Axboe [Thu, 12 May 2011 08:14:57 +0000 (10:14 +0200)]
Fix crash on specifying bad IO engine on the command line

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agowindowsaio: fix race condition between IOCP and queue functions
Bruce Cran [Thu, 12 May 2011 08:06:10 +0000 (10:06 +0200)]
windowsaio: fix race condition between IOCP and queue functions

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoCast l_opts string names to char *
Jens Axboe [Wed, 11 May 2011 11:28:30 +0000 (13:28 +0200)]
Cast l_opts string names to char *

Avoids warning on Solaris

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRevert "Constify l_opts strings"
Jens Axboe [Wed, 11 May 2011 11:27:38 +0000 (13:27 +0200)]
Revert "Constify l_opts strings"

This reverts commit e7d841768b8b6d5e081134e6e2f04f43ac870348.

9 years agoEnsure we quit on SIGTERM
Jens Axboe [Wed, 11 May 2011 11:23:01 +0000 (13:23 +0200)]
Ensure we quit on SIGTERM

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoConstify l_opts strings
Jens Axboe [Wed, 11 May 2011 06:20:21 +0000 (08:20 +0200)]
Constify l_opts strings

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix signed int/long truncation on 32-bit architectures
Jens Axboe [Wed, 11 May 2011 06:15:18 +0000 (08:15 +0200)]
Fix signed int/long truncation on 32-bit architectures

With using our internal random generator, we generate
unsigned ints. But by mistake this was assigned to
a signed long, that doesn't work so well on 32-bit machines.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.53 fio-1.53
Jens Axboe [Thu, 5 May 2011 18:07:24 +0000 (12:07 -0600)]
Fio 1.53

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRevert "parser: get rid of useless is_time variable"
Jens Axboe [Thu, 5 May 2011 18:05:10 +0000 (12:05 -0600)]
Revert "parser: get rid of useless is_time variable"

This reverts commit 1a1137d9ba2603e295aaac579777ab0d3524faa6.

9 years agoExit with error on signal
Jens Axboe [Thu, 5 May 2011 14:17:03 +0000 (08:17 -0600)]
Exit with error on signal

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agosscanf fixup
Bruce Cran [Thu, 5 May 2011 14:14:09 +0000 (08:14 -0600)]
sscanf fixup

I noticed that a job of:

[sequential write at  1k block size.]

Gets reported as "sequentia".

I think we need to use %255[^\n] in sscanf instead.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agowindowsaio: skip uncompleted requests
Bruce Cran [Thu, 5 May 2011 14:13:37 +0000 (08:13 -0600)]
windowsaio: skip uncompleted requests

Windows sometimes gives us an IO request which hasn't completed yet,
which we need to ignore.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoWindows fixes
Bruce Cran [Wed, 4 May 2011 13:54:13 +0000 (07:54 -0600)]
Windows fixes

- Fix XP support: get pointer to CancelIoEx at runtime.
- Fix overlapped IO.
- Don't use overlapped IO if direct or synchronous options are set.
- Check if write option is set before opening file in read-only mode:
  fixes 'rw=rw'.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoConvert left-over manual ->runstate setting to td_set_runstate()
Jens Axboe [Mon, 2 May 2011 19:14:26 +0000 (13:14 -0600)]
Convert left-over manual ->runstate setting to td_set_runstate()

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoBump max job count to 2048
Jens Axboe [Mon, 2 May 2011 19:05:02 +0000 (13:05 -0600)]
Bump max job count to 2048

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoSwitch mutex to using anonymous mmap
Jens Axboe [Mon, 2 May 2011 16:10:56 +0000 (10:10 -0600)]
Switch mutex to using anonymous mmap

We don't need an fd backing for this, saves on file descriptors
in use.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.52 fio-1.52
Jens Axboe [Fri, 29 Apr 2011 09:40:06 +0000 (11:40 +0200)]
Fio 1.52

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd space between -m and 755 for install
Jens Axboe [Fri, 29 Apr 2011 06:24:10 +0000 (08:24 +0200)]
Add space between -m and 755 for install

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRemove solaris posix_memalign() helper
Jens Axboe [Mon, 25 Apr 2011 18:49:45 +0000 (20:49 +0200)]
Remove solaris posix_memalign() helper

Not used in core code anymore.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd simple aligned alloc helper
Jens Axboe [Mon, 25 Apr 2011 18:46:58 +0000 (20:46 +0200)]
Add simple aligned alloc helper

We don't have posix_memalign() on some Solaris and Darwin, so just
add a poor mans implementation of it. Outside of arch code where
we have proper posix_memalign(), this is only used to ensure good
alignment of the io_u in the core code.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoos-mac.h: implement fio_set_odirect()
Steven Noonan [Sat, 23 Apr 2011 06:08:13 +0000 (23:08 -0700)]
os-mac.h: implement fio_set_odirect()

Signed-off-by: Steven Noonan <snoonan@amazon.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoos-mac.h: implement blockdev_size()
Steven Noonan [Sat, 23 Apr 2011 06:07:46 +0000 (23:07 -0700)]
os-mac.h: implement blockdev_size()

Signed-off-by: Steven Noonan <snoonan@amazon.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoSwitch all random generators to be decided by use_os_rand
Jens Axboe [Mon, 28 Mar 2011 07:51:09 +0000 (09:51 +0200)]
Switch all random generators to be decided by use_os_rand

This includes file sizing, next file, block size selection,
trim state, and verify state.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoSwitch the latter part of the offset generation to __rand() too
Jens Axboe [Mon, 28 Mar 2011 07:37:41 +0000 (09:37 +0200)]
Switch the latter part of the offset generation to __rand() too

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoSwitch to using our internal Tausworthe based random generator for offsets
Jens Axboe [Mon, 28 Mar 2011 07:35:09 +0000 (09:35 +0200)]
Switch to using our internal Tausworthe based random generator for offsets

It's both faster and more exhaustive than what is available on
glibc on my test systems. So no downsides, and the upside of having
the same offset generator across all platforms.

This will change the random series, so could alter performance for
your workload since the pattern will be different in sequence. There's
an option to revert to the OS generator, you can add use_us_rand=1
on your job files to retain the old generator offsets.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix parser bug dealing with range options and postfix
Jens Axboe [Sun, 27 Mar 2011 18:55:09 +0000 (20:55 +0200)]
Fix parser bug dealing with range options and postfix

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoGet rid of mixed rw and verify warning
Jens Axboe [Sun, 27 Mar 2011 18:53:39 +0000 (20:53 +0200)]
Get rid of mixed rw and verify warning

Should workd fine.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoparser: get rid of useless is_time variable
Jens Axboe [Sun, 27 Mar 2011 18:43:20 +0000 (20:43 +0200)]
parser: get rid of useless is_time variable

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix unsigned integer overflow in IO buffer allocator
Jens Axboe [Fri, 25 Mar 2011 20:36:28 +0000 (21:36 +0100)]
Fix unsigned integer overflow in IO buffer allocator

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.51 fio-1.51
Jens Axboe [Tue, 22 Mar 2011 13:33:04 +0000 (14:33 +0100)]
Fio 1.51

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix linking of fio executable
Diego Elio Pettenò [Mon, 21 Mar 2011 19:13:53 +0000 (20:13 +0100)]
Fix linking of fio executable

First of all make sure that $(LDFLAGS) are used during linking so that the
user can set the linker's flags.

Then also make sure that libraries are listed after the objects, so that
GNU ld's --as-needed option will not cause fio linking to fail.

Cc: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd support for giving multiple --section options
Jens Axboe [Fri, 11 Mar 2011 09:16:17 +0000 (10:16 +0100)]
Add support for giving multiple --section options

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoWindows: add missing files needed for msi build
Bruce Cran [Fri, 28 Jan 2011 07:41:42 +0000 (08:41 +0100)]
Windows: add missing files needed for msi build

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoReinstate unified Makefile
Bruce Cran [Fri, 28 Jan 2011 07:39:09 +0000 (08:39 +0100)]
Reinstate unified Makefile

Don't use ifeq statements.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.50.2 fio-1.50.2
Jens Axboe [Thu, 27 Jan 2011 21:26:29 +0000 (22:26 +0100)]
Fio 1.50.2

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix end-of-job slowdown for random IO with a random map
Jens Axboe [Thu, 27 Jan 2011 21:25:29 +0000 (22:25 +0100)]
Fix end-of-job slowdown for random IO with a random map

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoKill flist_sort from Makefiles
Jens Axboe [Thu, 27 Jan 2011 21:25:02 +0000 (22:25 +0100)]
Kill flist_sort from Makefiles

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRevert "Unify makefiles"
Jens Axboe [Thu, 27 Jan 2011 21:23:48 +0000 (22:23 +0100)]
Revert "Unify makefiles"

This reverts commit 7d130d8d2a5638ca91dc81ec085acef4d3c3ad08.

It requires make 3.81, and some popular distros are still using
make 3.80.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agosolaris: OpenSolaris already has the madvise advice defined
Jens Axboe [Thu, 27 Jan 2011 09:10:07 +0000 (10:10 +0100)]
solaris: OpenSolaris already has the madvise advice defined

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.50.1 fio-1.50.1
Jens Axboe [Wed, 26 Jan 2011 20:44:29 +0000 (21:44 +0100)]
Fio 1.50.1

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Wed, 26 Jan 2011 19:52:52 +0000 (20:52 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

9 years agosolaris: char dev size fixes
Jens Axboe [Wed, 26 Jan 2011 19:43:50 +0000 (20:43 +0100)]
solaris: char dev size fixes

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.50 fio-1.50
Jens Axboe [Tue, 25 Jan 2011 15:18:08 +0000 (16:18 +0100)]
Fio 1.50

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoMove version logging
Jens Axboe [Tue, 25 Jan 2011 12:06:16 +0000 (13:06 +0100)]
Move version logging

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRemove flist_sort(), it's no longer used
Jens Axboe [Mon, 24 Jan 2011 20:53:27 +0000 (21:53 +0100)]
Remove flist_sort(), it's no longer used

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoUnify makefiles
Bruce Cran [Mon, 24 Jan 2011 20:52:23 +0000 (21:52 +0100)]
Unify makefiles

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agommap: catch invalid msync() errors early
Jens Axboe [Sat, 22 Jan 2011 22:11:13 +0000 (15:11 -0700)]
mmap: catch invalid msync() errors early

Reported-by: Bruce Cran <bruce@cran.org.uk>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoEnsure that we exit with non-zero status on IO engine load failure
Jens Axboe [Sat, 22 Jan 2011 22:11:03 +0000 (15:11 -0700)]
Ensure that we exit with non-zero status on IO engine load failure

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.50-rc4 fio-1.50-rc4
Jens Axboe [Thu, 20 Jan 2011 17:17:35 +0000 (10:17 -0700)]
Fio 1.50-rc4

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd fill_fs alias for fill_device
Jens Axboe [Thu, 20 Jan 2011 17:16:03 +0000 (10:16 -0700)]
Add fill_fs alias for fill_device

Name implies that it works on a device, which isn't quite correct.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoExpand on fill_device option since it apparently causes confusion
Jens Axboe [Wed, 19 Jan 2011 22:35:26 +0000 (15:35 -0700)]
Expand on fill_device option since it apparently causes confusion

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoGet rid of shadow declarations
Jens Axboe [Wed, 19 Jan 2011 21:04:16 +0000 (14:04 -0700)]
Get rid of shadow declarations

Reported-by: Bruce Cran <bruce@cran.org.uk>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoDefine OS preferred IO engine
Jens Axboe [Wed, 19 Jan 2011 18:09:58 +0000 (11:09 -0700)]
Define OS preferred IO engine

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix merge error hiding mmap ioengine under Windows build
Jens Axboe [Wed, 19 Jan 2011 18:07:28 +0000 (11:07 -0700)]
Fix merge error hiding mmap ioengine under Windows build

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRemove version number from Windows MSI file
Bruce Cran [Wed, 19 Jan 2011 17:42:31 +0000 (10:42 -0700)]
Remove version number from Windows MSI file

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRe-tab some parts of README
Bruce Cran [Wed, 19 Jan 2011 17:41:48 +0000 (10:41 -0700)]
Re-tab some parts of README

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd instructions for building and running the Windows version of fio to README
Bruce Cran [Wed, 19 Jan 2011 17:41:10 +0000 (10:41 -0700)]
Add instructions for building and running the Windows version of fio to README

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoRemember to initialize return value in fixup_options()
Jens Axboe [Wed, 19 Jan 2011 05:33:02 +0000 (22:33 -0700)]
Remember to initialize return value in fixup_options()

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoMultiple jobs and verify will not fail if do_verify=0
Jens Axboe [Tue, 18 Jan 2011 12:41:39 +0000 (05:41 -0700)]
Multiple jobs and verify will not fail if do_verify=0

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoEnsure that short command line options work
Jens Axboe [Tue, 18 Jan 2011 12:22:22 +0000 (05:22 -0700)]
Ensure that short command line options work

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoCorrect check to o->numjobs > 1 for verify warning
Jens Axboe [Mon, 17 Jan 2011 23:51:46 +0000 (16:51 -0700)]
Correct check to o->numjobs > 1 for verify warning

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd --warnings-fatal/-w option
Jens Axboe [Mon, 17 Jan 2011 23:49:54 +0000 (16:49 -0700)]
Add --warnings-fatal/-w option

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoClean io_u->buf_filled_len in io_u_fill_buffer()
Jens Axboe [Sun, 16 Jan 2011 15:32:08 +0000 (08:32 -0700)]
Clean io_u->buf_filled_len in io_u_fill_buffer()

Not a bug as such, but it could be if we used it in other
locations in the future. So better be safe.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoStreamline pattern/meta verifies instead of special casing them
Jens Axboe [Fri, 14 Jan 2011 20:20:42 +0000 (21:20 +0100)]
Streamline pattern/meta verifies instead of special casing them

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.50-rc3 fio-1.50-rc3
Jens Axboe [Fri, 14 Jan 2011 19:51:54 +0000 (20:51 +0100)]
Fio 1.50-rc3

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoCleanup some verify bits
Jens Axboe [Fri, 14 Jan 2011 19:51:37 +0000 (20:51 +0100)]
Cleanup some verify bits

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoPrint error if max number of jobs is exceeded
Bruce Cran [Fri, 14 Jan 2011 17:30:26 +0000 (18:30 +0100)]
Print error if max number of jobs is exceeded

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoEta/disk thread uses more than the minimum stack
Jens Axboe [Fri, 14 Jan 2011 17:29:19 +0000 (18:29 +0100)]
Eta/disk thread uses more than the minimum stack

Causes crashes on FreeBSD. Just kill it, it's only really
important on the threads we potentially create tons of.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoComment out ->buf_filled_len in pattern fill
Jens Axboe [Fri, 14 Jan 2011 14:32:30 +0000 (15:32 +0100)]
Comment out ->buf_filled_len in pattern fill

It's buggy, needs to be debugged. Disable for now. It can cause
verify failures.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFix race in exit of eta/util thread
Jens Axboe [Fri, 14 Jan 2011 14:22:14 +0000 (15:22 +0100)]
Fix race in exit of eta/util thread

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoMake sure that pattern verifies also dump contents
Jens Axboe [Fri, 14 Jan 2011 13:49:20 +0000 (14:49 +0100)]
Make sure that pattern verifies also dump contents

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoChange disk util / eta method from signal to thread
Jens Axboe [Fri, 14 Jan 2011 13:14:58 +0000 (14:14 +0100)]
Change disk util / eta method from signal to thread

We used a thread based signal, but that causes a thread to
get created and killed every 250msecs. Lets just setup a
dedicated thread for this.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoWe need libgen.h for basename()
Jens Axboe [Fri, 14 Jan 2011 11:41:15 +0000 (12:41 +0100)]
We need libgen.h for basename()

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoCorrect basename usage for verify dump
Jens Axboe [Thu, 13 Jan 2011 17:57:54 +0000 (18:57 +0100)]
Correct basename usage for verify dump

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio 1.50-rc2 fio-1.50-rc2
Jens Axboe [Wed, 12 Jan 2011 08:07:44 +0000 (09:07 +0100)]
Fio 1.50-rc2

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoDon't double print version when invoked with --version
Jens Axboe [Wed, 12 Jan 2011 08:07:15 +0000 (09:07 +0100)]
Don't double print version when invoked with --version

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoAdd verify_dump option to control whether to dump bad/good blocks or not
Jens Axboe [Wed, 12 Jan 2011 08:03:23 +0000 (09:03 +0100)]
Add verify_dump option to control whether to dump bad/good blocks or not

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoEnsure that random_seed is also added to dummy io_buf for dumping
Jens Axboe [Wed, 12 Jan 2011 07:59:12 +0000 (08:59 +0100)]
Ensure that random_seed is also added to dummy io_buf for dumping

Now everything verifies correctly.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoPretty up the good/bad block verify dumping
Jens Axboe [Wed, 12 Jan 2011 07:31:54 +0000 (08:31 +0100)]
Pretty up the good/bad block verify dumping

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoWhen verify fails, dump the good/bad blocks to files
Jens Axboe [Tue, 11 Jan 2011 21:16:49 +0000 (22:16 +0100)]
When verify fails, dump the good/bad blocks to files

This makes it easy to compare afterwards to see what kind of
corruption was experienced.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoUpdate Windows version
Jens Axboe [Mon, 10 Jan 2011 19:43:42 +0000 (20:43 +0100)]
Update Windows version

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoMerge branch 'winfio'
Jens Axboe [Mon, 10 Jan 2011 19:40:47 +0000 (20:40 +0100)]
Merge branch 'winfio'

9 years agoMerge branch 'master' of ssh://router/data/git/fio
Jens Axboe [Mon, 10 Jan 2011 19:21:02 +0000 (20:21 +0100)]
Merge branch 'master' of ssh://router/data/git/fio

9 years agoFio 1.50-rc1 fio-1.50-rc1
Jens Axboe [Mon, 10 Jan 2011 19:20:38 +0000 (20:20 +0100)]
Fio 1.50-rc1

Now that we have Windows support pretty much done, lets rev
the version.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoMerge branch 'winfio'
Jens Axboe [Mon, 10 Jan 2011 19:20:25 +0000 (20:20 +0100)]
Merge branch 'winfio'

9 years agoRemove left-over files
Jens Axboe [Mon, 10 Jan 2011 18:36:09 +0000 (19:36 +0100)]
Remove left-over files

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoWindows updates
Bruce Cran [Mon, 10 Jan 2011 18:34:20 +0000 (19:34 +0100)]
Windows updates

- Remove files which are present in a minimal/default installation
  of Cygwin but which aren't needed to run fio. These include man pages,
  awk, groff etc.

- Remove CR from Makefile.Windows in order to maintain consistency with
  the rest of the files.

- Improve the documentation given when starting the FIO environment.

- Rename Cygwin.bat to FIO.bat and add FIO.lnk which is a shortcut to
  FIO.bat configured with QuickEdit and a larger window.

- Reformat install.wxs and move documentation from
  Program Files\FIO\usr\share\doc to Program Files\FIO.

- Restore $(EXTFLAGS) in the Makefile's to enable extra flags to be
  passed on the command-line.

- Remove os/windows/fio.sh which was an experimental way of setting up
  the Cygwin environment that has been replaced with FIO.bat.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agosetgid first, setuid second
Stefan Hajnoczi [Fri, 7 Jan 2011 20:58:05 +0000 (20:58 +0000)]
setgid first, setuid second

Setting a new effective gid requires privileges.  We must set the gid
while we potentially still have superuser privileges.  Otherwise
setgid(2) fails because we've already changed to an unprivileged uid.

Here is a test case:
[global]
rw=read
directory=tmp
size=512m
buffered=0

[file1]
uid=1000
gid=1000

Without this patch fio will fail when invoked by root.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoDocument that write_iolog is unsafe for concurrent jobs
Stefan Hajnoczi [Sat, 8 Jan 2011 19:28:41 +0000 (20:28 +0100)]
Document that write_iolog is unsafe for concurrent jobs

The write_iolog parameter should not be used in the global section since
each job will independently write to the same file.  The output will be
interspersed and the file will be corrupt.

Document that each job should write to its own iolog file.  This will
save users time when trying out the iolog feature for the first time.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Updated by me to make the same change to the man page.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoVarious fixes/updates
Bruce Cran [Sat, 8 Jan 2011 18:49:54 +0000 (19:49 +0100)]
Various fixes/updates

- Update HOWTO to note that directio and fallocate don't work with ZFS
  on Solaris.

Refactor the Makefile's to add CPPFLAGS and LIBS.
- Add -fno-omit-frame-pointer from Linux Makefile to every platform
- Change undefined $(ALL_CFLAGS) to $(CFLAGS)
- Pass -std=gnu99, without which OS X fails to build.
- Add -D__EXTENSIONS__ on Solaris since some functions we need are
  behind it.

- Pull in <limits.h> in fio.c to get PTHREAD_STACK_MIN.
- NetBSD doesn't define PTHREAD_STACK_MIN so set it to 4k in
   os-netbsd.h

- If we have posix_fallocate don't error out if it fails during mutex
  and malloc operations since it will fail on Solaris with a ZFS
  filesystem. As I understand it these aren't performance-critical
  operations so do they need to be considered critical?

- Remove fio_unused from os-* files since it's defined in fio.h and we
  don't really need it.

- FreeBSD has an idprio command but not the API so don't claim it does.

- OS X doesn't have the timer_* API so emulate it using
  setitimer/sigaction.

- NetBSD and Solaris don't support CLOCK_MONOTONIC in timer_create so
  remove FIO_HAVE_CLOCK_MONOTONIC from their os-* files.

I've noticed that a change I made a while ago to use fmin/fmax could
cause issues on older OSes - I had a CD with NetBSD 5.0.2 and found
they had only been implemented in 5.1 so I'm not sure if I should
revert it.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoClose iolog file if reading version string fails
Stefan Hajnoczi [Wed, 5 Jan 2011 10:02:30 +0000 (11:02 +0100)]
Close iolog file if reading version string fails

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFio Windows update
Bruce Cran [Tue, 4 Jan 2011 13:44:47 +0000 (14:44 +0100)]
Fio Windows update

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoOS headers need fio_file definition now
Jens Axboe [Tue, 4 Jan 2011 07:36:06 +0000 (08:36 +0100)]
OS headers need fio_file definition now

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFIO Windows update
Bruce Cran [Tue, 4 Jan 2011 09:59:30 +0000 (10:59 +0100)]
FIO Windows update

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoFirst snapshot of FIO for Windows
Bruce Cran [Sun, 2 Jan 2011 19:14:54 +0000 (20:14 +0100)]
First snapshot of FIO for Windows

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoInclude fio version in normal output
Jens Axboe [Tue, 28 Dec 2010 08:23:06 +0000 (09:23 +0100)]
Include fio version in normal output

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
9 years agoUse -pthread instead of -lpthread on FreeBSD
Bruce Cran [Thu, 16 Dec 2010 10:03:22 +0000 (11:03 +0100)]
Use -pthread instead of -lpthread on FreeBSD

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>