Jens Axboe [Tue, 24 May 2011 19:36:35 +0000 (21:36 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Tue, 24 May 2011 19:36:24 +0000 (21:36 +0200)]
Silence gcc 4.6 warnings
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
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>
Jens Axboe [Thu, 12 May 2011 18:06:57 +0000 (20:06 +0200)]
Fio 1.54
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
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>
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>
Jens Axboe [Wed, 11 May 2011 11:27:38 +0000 (13:27 +0200)]
Revert "Constify l_opts strings"
This reverts commit
e7d841768b8b6d5e081134e6e2f04f43ac870348.
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>
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>
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>
Jens Axboe [Thu, 5 May 2011 18:07:24 +0000 (12:07 -0600)]
Fio 1.53
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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.
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Fri, 29 Apr 2011 09:40:06 +0000 (11:40 +0200)]
Fio 1.52
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Tue, 22 Mar 2011 13:33:04 +0000 (14:33 +0100)]
Fio 1.51
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Wed, 26 Jan 2011 19:52:52 +0000 (20:52 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
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>
Jens Axboe [Tue, 25 Jan 2011 15:18:08 +0000 (16:18 +0100)]
Fio 1.50
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Jens Axboe [Tue, 25 Jan 2011 12:06:16 +0000 (13:06 +0100)]
Move version logging
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
Bruce Cran [Mon, 24 Jan 2011 20:52:23 +0000 (21:52 +0100)]
Unify makefiles
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jens Axboe [Mon, 10 Jan 2011 19:43:42 +0000 (20:43 +0100)]
Update Windows version
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Jens Axboe [Mon, 10 Jan 2011 19:40:47 +0000 (20:40 +0100)]
Merge branch 'winfio'
Jens Axboe [Mon, 10 Jan 2011 19:21:02 +0000 (20:21 +0100)]
Merge branch 'master' of ssh://router/data/git/fio
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>
Jens Axboe [Mon, 10 Jan 2011 19:20:25 +0000 (20:20 +0100)]
Merge branch 'winfio'
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>
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>
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>
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>
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>
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>
Bruce Cran [Tue, 4 Jan 2011 13:44:47 +0000 (14:44 +0100)]
Fio Windows update
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>
Bruce Cran [Tue, 4 Jan 2011 09:59:30 +0000 (10:59 +0100)]
FIO Windows update
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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>