fio.git
14 years agoOptimize __get_io_u() for better code foot print
Jens Axboe [Fri, 19 Mar 2010 09:33:39 +0000 (10:33 +0100)]
Optimize __get_io_u() for better code foot print

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix bad sign on td_verror()
Jens Axboe [Fri, 19 Mar 2010 07:48:05 +0000 (08:48 +0100)]
Fix bad sign on td_verror()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoDon't call getpid() in dprint() unless we are going to use it
Jens Axboe [Fri, 19 Mar 2010 07:08:06 +0000 (08:08 +0100)]
Don't call getpid() in dprint() unless we are going to use it

Reported-by: David Andersen <dga@cs.cmu.edu>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoUse 'o' consistently in fixup_options()
Jens Axboe [Thu, 18 Mar 2010 19:45:43 +0000 (20:45 +0100)]
Use 'o' consistently in fixup_options()

It points to &td->o, and it's used interchangably in that function.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoSet verify_interval to minimum blocksize if not given
Jens Axboe [Thu, 18 Mar 2010 19:43:00 +0000 (20:43 +0100)]
Set verify_interval to minimum blocksize if not given

Otherwise workloads with bsrange settings will not work properly.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoCatch error on ->commit and ->get_events
Jens Axboe [Thu, 18 Mar 2010 18:31:06 +0000 (19:31 +0100)]
Catch error on ->commit and ->get_events

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoVerify log message
Jens Axboe [Thu, 18 Mar 2010 18:29:45 +0000 (19:29 +0100)]
Verify log message

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix bad type usage in parse.c for external options
Jens Axboe [Thu, 18 Mar 2010 15:50:31 +0000 (16:50 +0100)]
Fix bad type usage in parse.c for external options

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoCheck for syscall definitions, before declaring __weak helper
Jens Axboe [Mon, 15 Mar 2010 12:38:11 +0000 (13:38 +0100)]
Check for syscall definitions, before declaring __weak helper

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd __weak sync_file_range()
Jens Axboe [Sat, 13 Mar 2010 10:29:47 +0000 (11:29 +0100)]
Add __weak sync_file_range()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix broken FIO_OPT_STR option
Jens Axboe [Wed, 10 Mar 2010 11:49:03 +0000 (12:49 +0100)]
Fix broken FIO_OPT_STR option

Only break out and show help if the option had ->posval entries.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix parser bug capping multi value options at 2
Jens Axboe [Wed, 10 Mar 2010 11:36:17 +0000 (12:36 +0100)]
Fix parser bug capping multi value options at 2

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoUpdate libaio/posixaio/splice for sync updates
Jens Axboe [Tue, 9 Mar 2010 20:47:15 +0000 (21:47 +0100)]
Update libaio/posixaio/splice for sync updates

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAssign io_u->error directly in do_io_u_sync()
Jens Axboe [Tue, 9 Mar 2010 20:44:55 +0000 (21:44 +0100)]
Assign io_u->error directly in do_io_u_sync()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAbstract out generic sync helper
Jens Axboe [Tue, 9 Mar 2010 20:40:38 +0000 (21:40 +0100)]
Abstract out generic sync helper

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd documentation for 'sync_file_range'
Jens Axboe [Tue, 9 Mar 2010 19:49:54 +0000 (20:49 +0100)]
Add documentation for 'sync_file_range'

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMake sure we handle multiple arguments to sync_file_range
Jens Axboe [Tue, 9 Mar 2010 19:41:15 +0000 (20:41 +0100)]
Make sure we handle multiple arguments to sync_file_range

We need to be able to OR the values.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAllow OR'able option values
Jens Axboe [Tue, 9 Mar 2010 19:40:44 +0000 (20:40 +0100)]
Allow OR'able option values

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoInitial suppor for sync_file_range()
Jens Axboe [Tue, 9 Mar 2010 19:09:44 +0000 (20:09 +0100)]
Initial suppor for sync_file_range()

This revs the ioengine to 11, as we now have another data direction.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoRemove debug printf()
Jens Axboe [Tue, 9 Mar 2010 18:21:53 +0000 (19:21 +0100)]
Remove debug printf()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd profile td init/exit with stored data
Jens Axboe [Tue, 9 Mar 2010 11:20:08 +0000 (12:20 +0100)]
Add profile td init/exit with stored data

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMake profile io op overrides a dedicated structure
Jens Axboe [Mon, 8 Mar 2010 12:58:49 +0000 (13:58 +0100)]
Make profile io op overrides a dedicated structure

Also add a 'get_next_file' hook while at it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix parse strlen() bug
Jens Axboe [Fri, 5 Mar 2010 11:46:37 +0000 (12:46 +0100)]
Fix parse strlen() bug

Commit 38789b58775ee5e00f4669f01b3c9da31a7345e3 checks the wrong
string, it's unitialized garbage.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAllow profiles to override internal io_u functions
Jens Axboe [Fri, 5 Mar 2010 09:59:06 +0000 (10:59 +0100)]
Allow profiles to override internal io_u functions

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAllow the adding of 'posval' for dynamic options like 'profile'
Jens Axboe [Fri, 5 Mar 2010 09:09:59 +0000 (10:09 +0100)]
Allow the adding of 'posval' for dynamic options like 'profile'

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAllow holes in the option posval (possible values)
Jens Axboe [Fri, 5 Mar 2010 09:06:15 +0000 (10:06 +0100)]
Allow holes in the option posval (possible values)

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd profile description
Jens Axboe [Fri, 5 Mar 2010 08:56:32 +0000 (09:56 +0100)]
Add profile description

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoCleanup profile support
Jens Axboe [Fri, 5 Mar 2010 08:48:44 +0000 (09:48 +0100)]
Cleanup profile support

This is closer to where it needs to end up. No ext_options, just
include profile options in the general option table (and mark them
private for that profile).

Profile options are only available after loading a specific profile,
so there should be less confusion.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMake sure profile options get added to long_options[]
Jens Axboe [Thu, 4 Mar 2010 13:38:10 +0000 (14:38 +0100)]
Make sure profile options get added to long_options[]

Still the restriction that profile load must come after the
private options, which is a bit odd. Still shaking out the
oddities....

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMore progress on per-profile options support
Jens Axboe [Thu, 4 Mar 2010 13:30:02 +0000 (14:30 +0100)]
More progress on per-profile options support

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd initial support for profile specific options
Jens Axboe [Thu, 4 Mar 2010 13:05:48 +0000 (14:05 +0100)]
Add initial support for profile specific options

Not complete yet, we need to split option parsing for profiles a
bit.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd parser support for out-of-td option storage
Jens Axboe [Thu, 4 Mar 2010 12:49:11 +0000 (13:49 +0100)]
Add parser support for out-of-td option storage

Currently the parser assumes the storage is inside a thread_data
structure.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd support for loadable profiles
Jens Axboe [Thu, 4 Mar 2010 11:43:20 +0000 (12:43 +0100)]
Add support for loadable profiles

Split the only existing profile, tiobench, into this setup.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMerge branch 'master' of ssh://router/data/git/fio
Jens Axboe [Thu, 4 Mar 2010 09:42:55 +0000 (10:42 +0100)]
Merge branch 'master' of ssh://router/data/git/fio

14 years agoAdd support for registrering external options
Jens Axboe [Thu, 4 Mar 2010 09:42:38 +0000 (10:42 +0100)]
Add support for registrering external options

Start of support for real profiles.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoQuote profile name
Jens Axboe [Wed, 3 Mar 2010 20:33:21 +0000 (21:33 +0100)]
Quote profile name

Makes for better reading.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd check for OPT_LEN_MAX being too small
Jens Axboe [Wed, 3 Mar 2010 08:23:20 +0000 (09:23 +0100)]
Add check for OPT_LEN_MAX being too small

Will hopefully catch a bug like this in the future.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoIncrease OPT_LEN_MAX
Zhang, Yanmin [Wed, 3 Mar 2010 07:26:30 +0000 (08:26 +0100)]
Increase OPT_LEN_MAX

When I run fio with lots of files on a disk, parameter filename's length
is more than 1024 and tail filenames are cut.

Below is a patch to increase OPT_LEN_MAX to 4096.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoUse log_info() more consistently
Jens Axboe [Wed, 24 Feb 2010 08:19:14 +0000 (09:19 +0100)]
Use log_info() more consistently

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix bug in sha256 verify
Jens Axboe [Tue, 23 Feb 2010 09:36:21 +0000 (10:36 +0100)]
Fix bug in sha256 verify

It was using twice as large data block as it should have been,
causing verify failures.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFio 1.37 fio-1.37
Jens Axboe [Mon, 22 Feb 2010 18:58:41 +0000 (19:58 +0100)]
Fio 1.37

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoPA-RISC support
Jens Axboe [Mon, 22 Feb 2010 13:08:43 +0000 (14:08 +0100)]
PA-RISC support

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix FreeBSD support
Joshua Aune [Thu, 11 Feb 2010 07:59:18 +0000 (00:59 -0700)]
Fix FreeBSD support

* Fix dep calculation in Makefile.FreeBSD to ignore other os specific
   header files, avoid blowing up on includes in os-solaris.h
 * Mark FreeBSD as not supporting fdatasync()
 * Add documentation note about FreeBSD not supporting fsyncdata=
 * Add warning if fsyncdata= is used on os that doesn't support, fall
   back to fsync()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Sat, 6 Feb 2010 22:37:07 +0000 (23:37 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

14 years agoget_file_type() should use stat(), not lstat()
Jens Axboe [Sat, 6 Feb 2010 22:36:26 +0000 (23:36 +0100)]
get_file_type() should use stat(), not lstat()

We care about the device, not the potential link we are passed.

Reported-by: "H. Tolley" <h_tolley@hotmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoTrack last file offset
Jens Axboe [Tue, 2 Feb 2010 08:48:13 +0000 (09:48 +0100)]
Track last file offset

Avoids doing an lseek() in the sync IO engine.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd specific knob for controlling fallocate() usage
Jens Axboe [Thu, 28 Jan 2010 10:31:31 +0000 (11:31 +0100)]
Add specific knob for controlling fallocate() usage

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Wed, 23 Dec 2009 07:55:54 +0000 (08:55 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio

14 years agoAllow 'b' postfix for integer values
Jens Axboe [Wed, 23 Dec 2009 07:54:52 +0000 (08:54 +0100)]
Allow 'b' postfix for integer values

Fio would previously regard '1tb' as just 1 byte, since the 'b' postfix
isn't a valid multiplier. Allow the 'b' as well, just ignore it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix barrier for sh4a
Jens Axboe [Tue, 22 Dec 2009 08:06:43 +0000 (09:06 +0100)]
Fix barrier for sh4a

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix sh4 typo
Jens Axboe [Tue, 22 Dec 2009 08:03:58 +0000 (09:03 +0100)]
Fix sh4 typo

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agosh4 support
Nobuhiro Iwamatsu [Tue, 22 Dec 2009 08:03:25 +0000 (09:03 +0100)]
sh4 support

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd generic arch include header
Jens Axboe [Mon, 21 Dec 2009 12:30:31 +0000 (13:30 +0100)]
Add generic arch include header

For a newer glibc, this should work (as we don't need private
splice defines, for instance).

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoOSX should include sha1
Jens Axboe [Sun, 20 Dec 2009 21:30:27 +0000 (22:30 +0100)]
OSX should include sha1

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMake fdatasync OS optional
Jens Axboe [Sun, 20 Dec 2009 21:29:10 +0000 (22:29 +0100)]
Make fdatasync OS optional

OSX does not have it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoos.h should include headers it needs by itself
Jens Axboe [Sun, 20 Dec 2009 21:24:10 +0000 (22:24 +0100)]
os.h should include headers it needs by itself

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoInclude juggling
Jens Axboe [Wed, 16 Dec 2009 18:23:10 +0000 (19:23 +0100)]
Include juggling

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd Solaris helper object
Jens Axboe [Wed, 16 Dec 2009 08:53:24 +0000 (09:53 +0100)]
Add Solaris helper object

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMake weak posix_memalign() private to Solaris
Jens Axboe [Wed, 16 Dec 2009 08:50:05 +0000 (09:50 +0100)]
Make weak posix_memalign() private to Solaris

OSX has posix_memalign() but no memalign() and no malloc.h
standard include. So until we have a autoconf based build
system, move this weak helper to the private Solaris header.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd generic random helpers
Jens Axboe [Tue, 15 Dec 2009 09:28:37 +0000 (10:28 +0100)]
Add generic random helpers

FreeBSD and OSX can both use these.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix some issues with the OSX port
Jens Axboe [Tue, 15 Dec 2009 07:58:10 +0000 (08:58 +0100)]
Fix some issues with the OSX port

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoSupport for Mac OS 10.6.2
Jens Axboe [Mon, 14 Dec 2009 22:08:42 +0000 (23:08 +0100)]
Support for Mac OS 10.6.2

Contributed by Small Tree, adopted to newer fio version by me.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFio 1.36 fio-1.36
Jens Axboe [Thu, 10 Dec 2009 22:17:39 +0000 (23:17 +0100)]
Fio 1.36

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix rate option with iodepth > 1
Radha Ramachandran [Wed, 9 Dec 2009 21:31:44 +0000 (22:31 +0100)]
Fix rate option with iodepth > 1

The rate option currently doesnt work when used with libaio engine.
The math currently, calculates the time t2 (when the I/O completed) -
t1 (when the io_u unit was created) as the time it takes for the I/O
and the bandwidth for the rate calculation is calculated from that.
This math will work correctly for sync engine as there is only one io
in progress at a time, but for libaio engine, when there are multiple
I/Os queued, the same time (as in from t1 to t2) could be attributed
to other I/Os as well so the actual bandwidth is actually higher.
I have a patch, but this is more brute force where I take the total
bytes read/written divided by the time since I/Os started to calculate
the bandwidth and decide on the time that needs to be spent sleeping
(if any).This is a little more heavy weight than the previous math. I
think there are probably simpler/cleaner solutions than this but this
is the current patch I have for it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFio 1.36-rc2 fio-1.36-rc2
Jens Axboe [Tue, 8 Dec 2009 09:10:31 +0000 (10:10 +0100)]
Fio 1.36-rc2

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd support for specifying UID/GID
Jens Axboe [Tue, 8 Dec 2009 09:10:14 +0000 (10:10 +0100)]
Add support for specifying UID/GID

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix compilation for non-linux
Jens Axboe [Mon, 7 Dec 2009 07:02:22 +0000 (08:02 +0100)]
Fix compilation for non-linux

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAutodetect cgroup blkio mount point
Jens Axboe [Mon, 7 Dec 2009 07:01:26 +0000 (08:01 +0100)]
Autodetect cgroup blkio mount point

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix an inverted cgroup exit check
Jens Axboe [Sat, 5 Dec 2009 21:30:04 +0000 (22:30 +0100)]
Fix an inverted cgroup exit check

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFio 1.36-rc1 fio-1.36-rc1
Jens Axboe [Sat, 5 Dec 2009 08:43:33 +0000 (09:43 +0100)]
Fio 1.36-rc1

Usually don't do -rc releases, but we have some substantial additions
this time.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agocgroup cleanups
Jens Axboe [Fri, 4 Dec 2009 21:13:43 +0000 (22:13 +0100)]
cgroup cleanups

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMove cgroup list to proper shared storage
Jens Axboe [Fri, 4 Dec 2009 18:54:18 +0000 (19:54 +0100)]
Move cgroup list to proper shared storage

Otherwise we have per-job lists, and that doesn't help very much
with cleaning up.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agocgroup cleanups/fixes
Jens Axboe [Fri, 4 Dec 2009 18:26:22 +0000 (19:26 +0100)]
cgroup cleanups/fixes

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoBetter support for setting up and removing private cgroups
Jens Axboe [Fri, 4 Dec 2009 10:29:12 +0000 (11:29 +0100)]
Better support for setting up and removing private cgroups

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoCGROUP fixes
Jens Axboe [Fri, 4 Dec 2009 09:54:45 +0000 (10:54 +0100)]
CGROUP fixes

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd support for blkio cgroups on Linux
Jens Axboe [Fri, 4 Dec 2009 09:05:02 +0000 (10:05 +0100)]
Add support for blkio cgroups on Linux

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMove back to realtime clock
Jens Axboe [Fri, 4 Dec 2009 08:56:32 +0000 (09:56 +0100)]
Move back to realtime clock

On some systems MONOTONIC still causes a hang.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd helpers include file
Jens Axboe [Tue, 24 Nov 2009 12:01:41 +0000 (13:01 +0100)]
Add helpers include file

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix compile error due to missing ENOMEM on some platforms
Jens Axboe [Tue, 24 Nov 2009 07:48:21 +0000 (08:48 +0100)]
Fix compile error due to missing ENOMEM on some platforms

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMerge branch 'master' of ssh://router/data/git/fio
Jens Axboe [Tue, 24 Nov 2009 07:48:01 +0000 (08:48 +0100)]
Merge branch 'master' of ssh://router/data/git/fio

14 years agoAdd weak helpers to other makefiles
Jens Axboe [Mon, 23 Nov 2009 20:42:46 +0000 (21:42 +0100)]
Add weak helpers to other makefiles

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix posix_memalign() return value in case of error
Jens Axboe [Mon, 23 Nov 2009 14:21:39 +0000 (15:21 +0100)]
Fix posix_memalign() return value in case of error

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd posix_* weak helpers
Jens Axboe [Mon, 23 Nov 2009 14:14:48 +0000 (15:14 +0100)]
Add posix_* weak helpers

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoRe-include fallback BITS_PER_LONG fallback
Jens Axboe [Mon, 23 Nov 2009 12:01:01 +0000 (13:01 +0100)]
Re-include fallback BITS_PER_LONG fallback

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoCorrect size of tiobench profile
Jens Axboe [Fri, 13 Nov 2009 20:25:03 +0000 (21:25 +0100)]
Correct size of tiobench profile

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoAdd support for simple profile benchmarks
Jens Axboe [Fri, 13 Nov 2009 20:23:07 +0000 (21:23 +0100)]
Add support for simple profile benchmarks

One of the reasons that tiobench gets used a lot, is that you
simply have to run it. For "real" benchmarks, you usually
have to configure them first. This adds support for easy testing
by adding some predefined and included workloads. This commit
includes tiobench, to run a tiobench like workload you would
simply do:

$ fio --profile=tiobench

and that would be it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoOnly do math on known keywords
Jens Axboe [Fri, 13 Nov 2009 11:33:54 +0000 (12:33 +0100)]
Only do math on known keywords

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoSupport simple math on reserved keyword expressions
Jens Axboe [Fri, 13 Nov 2009 11:19:49 +0000 (12:19 +0100)]
Support simple math on reserved keyword expressions

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoLog bad verify header location
Radha Ramachandran [Thu, 12 Nov 2009 07:42:43 +0000 (08:42 +0100)]
Log bad verify header location

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFio 1.35 fio-1.35
Jens Axboe [Thu, 5 Nov 2009 07:58:55 +0000 (08:58 +0100)]
Fio 1.35

A few nasty bugs fixed since the last tag, so lets
cut a new one.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoDon't pass more than the queued IO depth in to getevents()
Radha Ramachandran [Thu, 5 Nov 2009 07:33:49 +0000 (08:33 +0100)]
Don't pass more than the queued IO depth in to getevents()

Otherwise we can hang fio, since it'll attempt to wait for more
IOs than we have in flight.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix race on io_u->flags
Jens Axboe [Wed, 4 Nov 2009 19:58:09 +0000 (20:58 +0100)]
Fix race on io_u->flags

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMove BITS_PER_LONG define to arch
Jens Axboe [Wed, 4 Nov 2009 12:56:13 +0000 (13:56 +0100)]
Move BITS_PER_LONG define to arch

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoWait for async threads before freeing/killing IO buffers
Jens Axboe [Wed, 4 Nov 2009 11:51:17 +0000 (12:51 +0100)]
Wait for async threads before freeing/killing IO buffers

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFixup iolog replay and add 'wait' command
Glen Ogilvie [Tue, 3 Nov 2009 20:52:36 +0000 (21:52 +0100)]
Fixup iolog replay and add 'wait' command

I have been working with Mike O'Sullivan, a senior lecturer at the University
of Auckland, New Zealand. He has been adapting fio 1.34.1 to work with iolog
files and also to be able to read a "wait" command to allow the iolog file to
specify a wait (in millisecs) before the next io. Mike's not completely
confident that his changes are correct in the overall fio picture, but they are
working with the iolog files we are using. What we did:

1) We incorporated wait into iolog file reading;
2) We made some modifications so that read_iolog worked.

We have attached a patch for fio-1.34.1.tar.bz2 along with some demonstration
fio config files and iolog files.

We are doing this so we can use an open source SPC-1 emulator to
generate SPC-1 like workloads and then run them in fio.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix race condition when using asynch verify
Radha Ramachandran [Tue, 3 Nov 2009 20:45:31 +0000 (21:45 +0100)]
Fix race condition when using asynch verify

I discovered the race condition when using asynch verify with libaio engine.
The code assumes that because the td->cur_depth value is not 0 that
there is still I/O pending and issues io_getevents when the I/O was
actually being verified by the asynchronous verify thread. This causes
the code to hang.

(Updated by Jens to use a new io_u->flag bitfield instead of adding a new
 integer to struct io_u).

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoSupport > 4 byte verify write patterns
Radha Ramachandran [Tue, 27 Oct 2009 19:14:27 +0000 (20:14 +0100)]
Support > 4 byte verify write patterns

This is the patch I have to write/read/verify hex patterns of size > 4
bytes.  I have tested these on hard drives and did not see any
performance change. I am assuming the performance drop if any might show
up in the read phase for probably solid state drives and maybe it can be
worked around using the asynchronous verify flag.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFio 1.34.2 fio-1.34.2
Jens Axboe [Thu, 15 Oct 2009 05:11:30 +0000 (07:11 +0200)]
Fio 1.34.2

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoFix bug in bssplit parsing
Kenneth Waters [Thu, 15 Oct 2009 05:08:48 +0000 (07:08 +0200)]
Fix bug in bssplit parsing

I found a bug is bssplit parsing in bssplit_ddir() when trying to use
FIO on an ARM platform.  It looks like str_to_decimal() takes a "void
*" as its fourth argument, which it passes to get_multi_bytes(), which
is passes to fio_get_kb_base(), which casts it to a "struct
thread_data *".  bssplit_ddir() is passing in "struct thread_data **",
which I think is causing fio_get_kb_base() to go paw around in the
stack; I believe the different stack layouts between ARM and x86 is
causing me to see this problem.  The first change that introduces this
bug seems to be d6978a3242daad9cb7b0710b724f19225d1ed7e2.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
14 years agoMerge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Wed, 7 Oct 2009 20:02:15 +0000 (22:02 +0200)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio