Jens Axboe [Fri, 2 Mar 2007 20:43:25 +0000 (21:43 +0100)]
Spelling fixes
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 18:42:37 +0000 (19:42 +0100)]
posixaio engine: residual data count
If the io was cancelled, residual is the full data buffer length.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 14:16:45 +0000 (15:16 +0100)]
io_u completion error propagation
Make sure we definitely signal an endio error.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 14:16:03 +0000 (15:16 +0100)]
libaio engine: proper return value checking
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 07:58:05 +0000 (08:58 +0100)]
Add example network io job file
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 07:55:48 +0000 (08:55 +0100)]
Net engine: move connection setup into ->init()
Then it happens in the process own context, which means we can
define full send/receive jobs in a single job file and run them
from a single fio instance.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 07:47:18 +0000 (08:47 +0100)]
Net engine: missing ->nr_open_files for clients
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 07:44:25 +0000 (08:44 +0100)]
Convert null io engine to use ->setup()
Then we can get rid of the NULLIO flags hack
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 2 Mar 2007 07:00:23 +0000 (08:00 +0100)]
Net engine: need to set ->nr_open_files
It is marked as SELFOPEN, so it opens it's own files. So it also
needs to increment the open file count as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 13:23:28 +0000 (14:23 +0100)]
Accept -foo as well as --foo for options
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 13:05:30 +0000 (14:05 +0100)]
Improve friendliness of --cmdhelp
If no match is found, print the closest. Quite handy when
you can't quite remember the exact option name.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 09:44:12 +0000 (10:44 +0100)]
Don't require 'all' argument to --cmdhelp to dump all options
If an argument isn't given, just dump all commands. This has the
downside that one MUST use --cmdhelp=option to get option help,
where as before --cmdhelp option worked as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 09:06:10 +0000 (10:06 +0100)]
Document file_service_type option
It's now tested, so add it to the list of options in HOWTO.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 09:04:15 +0000 (10:04 +0100)]
Fix for file_service_type=random
We need to retrieve a new random offset if the file is closed,
obviously.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 08:54:57 +0000 (09:54 +0100)]
Better management of open files
This is a first step to properly supporting dynamic open/close of
new files, differently sized files, etc.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 08:33:57 +0000 (09:33 +0100)]
Excessive passing around of struct fio_file
It's already set before calling fill_io_u(), no point in passing
it around and overwriting it with the same value later.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 1 Mar 2007 07:27:42 +0000 (08:27 +0100)]
Only check FIO_DISKLESSIO in stat.c
Just make the null engine set that flag as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Joel Becker [Thu, 1 Mar 2007 07:26:38 +0000 (08:26 +0100)]
[PATCH] ioengine flags: Replace FIO_NETIO with real flags that map the
behavior
The FIO_NETIO ioengine flag created two behaviors. First, open_files()
would not open any files - this was handled in engines/net:setup().
Second, init_disk_util() would ignore the files and not try to locate
their disk.
Other engines might want one of these behaviors but not the other. If
an engine opens its own files, it doesn't want open_files() to do anything,
even if the files are eventually disk-based. An engine might want to
prevent init_disk_util() from running.
The FIO_NETIO flag is split into two flags.
FIO_SELFOPEN states that the engine will do its own open(), whether it
is a real open(2) or something internal to the engine.
FIO_DISKLESSIO states that init_disk_util() is should not be run. fio
should treat the engine's files as if they are not part of a disk.
Finally, engines/net.c is changed to use these two flags.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Joel Becker [Thu, 1 Mar 2007 07:24:39 +0000 (08:24 +0100)]
[PATCH] init.c: Expose f_out and f_err to loaded libraries via dlsym()
Loaded ioengines would like to use the logging functions but can't, as
they can't see f_out and f_err. Create get_f_{out,err}() so that
the libraries can dlsym() them. Compile fio with -rdynamic so dlopen()
works.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Joel Becker [Thu, 1 Mar 2007 07:22:42 +0000 (08:22 +0100)]
[PATCH] parse.c: Make FIO_OPT_STR explicitly one value
The original change had __handle_option() check !first to avoid
parsing an FIO_OPT_STR a second time. However, the caller handle_option()
has a more explicit check. Excluding FIO_OPT_STR there is much cleaner.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 28 Feb 2007 10:13:49 +0000 (11:13 +0100)]
Don't do rate checks, if no ratemin has been specified.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 28 Feb 2007 10:12:25 +0000 (11:12 +0100)]
Document loading external io engines
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Joel Becker [Wed, 28 Feb 2007 10:10:58 +0000 (11:10 +0100)]
Prefix external io engine loading with 'external'
This is needed because the parser checks the allowed values now,
which broke ioengine=/some/external/file.o for loading an
external engine.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Joel Becker [Wed, 28 Feb 2007 08:38:39 +0000 (09:38 +0100)]
Fix parser bug
If the option parser sees a ':', it automatically assumes that
you meant a range. It will then try to parse the second half of the
option. This isn't just my external: option, it happens to mem: as
well. That is:
1) Option mem=mmaphuge:/dev/shm/foo
2) handle_option() notices the ':' and stores off ptr2.
3) __handle_option() corectly sees the option "mem" and maps
"mmaphuge" to MEM_MMAPHUGE. It then calls str_mem_cb(), which
stores off the "/dev/shm/foo" after the ':'. Still working
great.
4) Control returns to handle_option(), which sees that ptr2 is
non-NULL. It calls __handle_option() again, pointing to the
string after the ':'.
5) __handle_option() prints an error, as "/dev/shm/foo" is not a
known option.
Fix it by breaking out early for the 2nd parse round if the option
type is a string.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 28 Feb 2007 08:32:54 +0000 (09:32 +0100)]
Duplicate name checks in ioengines.c
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 28 Feb 2007 07:57:27 +0000 (08:57 +0100)]
syslet: x86_64 support
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 28 Feb 2007 07:56:12 +0000 (08:56 +0100)]
Style fixup
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 28 Feb 2007 07:54:37 +0000 (08:54 +0100)]
Move syslet check into the arch header, where it belongs
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 27 Feb 2007 19:38:51 +0000 (20:38 +0100)]
Fio version 1.12
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 27 Feb 2007 18:56:43 +0000 (19:56 +0100)]
Temporary iodepth_low work-around for syslets
syslet really wants iodepth_low=1 for sequential workloads,
otherwise when fio starts issuing a new sequence of io, we'll
have pending-and-unsubmitted requests from the previous process.
The results is seeky instead of sequential requests.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 27 Feb 2007 18:47:13 +0000 (19:47 +0100)]
syslet engine: submission latency numbers
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 13:45:12 +0000 (14:45 +0100)]
Move the iodepth_batch into td_io_queue() instead
The previous part in do_io() introduced a bug (overwriting ret),
and we really need to do it from other locations as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 12:18:47 +0000 (13:18 +0100)]
Extend option name from 16 to 20 bytes
The file_service_type was too long, making the output look
badly formatted.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 11:57:32 +0000 (12:57 +0100)]
Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
Jens Axboe [Mon, 26 Feb 2007 11:57:09 +0000 (12:57 +0100)]
Add iodepth_batch setting
This allows controlling how much IO we submit in one go
independent of the iodepth set.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 11:52:57 +0000 (12:52 +0100)]
Merge branch 'master' of ssh://git.kernel.dk/data/git/fio
Jens Axboe [Mon, 26 Feb 2007 11:43:42 +0000 (12:43 +0100)]
Do proper wait for pending IO on clean exit
Only do the cancel if something went wrong and td->error is set,
otherwise be a good citizen and complete and account for the io
we submitted.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 11:33:27 +0000 (12:33 +0100)]
No need to do fadvise() on O_DIRECT/raw IO
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 11:28:58 +0000 (12:28 +0100)]
Speedup init_disk_util() when dealing with many jobs
sysfs lookups can take quite a while, so check against last device
to avoid having to iterate through sysfs again.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 09:44:22 +0000 (10:44 +0100)]
syslet engine: smart batching
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 09:40:03 +0000 (10:40 +0100)]
Move ->commit() call to td_io_getevents()
If we need to complete some events (min > 0), make sure we
have committed a pending batch.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 26 Feb 2007 09:22:31 +0000 (10:22 +0100)]
syslet v4 support
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Sat, 24 Feb 2007 12:31:57 +0000 (13:31 +0100)]
Requeue io_u flags fix
We need to clear IO_U_F_FLIGHT and set IO_U_F_FREE in requeue.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 12:21:45 +0000 (13:21 +0100)]
First cut at doing sequences of atoms in one commit
Needs error handling and stop conditions, so it's in an experimental
branch for now.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 11:34:57 +0000 (12:34 +0100)]
Move completion handler into the io_u
This is needed for completions that happen outside of fio,
or more specifically, for syslet to enable completions in
a ->queue() hook combined with ->commit().
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 10:23:03 +0000 (11:23 +0100)]
Don't include engines we don't have
With the new option scheme, it's easier to just diff out the option
types we don't support. So do that for the io engines.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 10:18:30 +0000 (11:18 +0100)]
IO engine callback need not dump possible values
The parser will do this now. Also don't dump the worthless
"job dropped" message.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 09:56:22 +0000 (10:56 +0100)]
Rate must always calculate bytes done
Otherwise rate will never be checked.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 09:47:46 +0000 (10:47 +0100)]
Improve rate usec calculation
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 09:29:16 +0000 (10:29 +0100)]
Move handling of possible values into the option parser
Eliminates the need for a callback for any FIO_OPT_STR type
option, unless it needs to do something there other than just
setting the variable.
The possible options are not in an array of value pairs, so we
can easily match an string option with an integer output value.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 08:26:09 +0000 (09:26 +0100)]
Streamline thread_data data direction setting and checking
Currently it's a mess of ->ddir, ->iomix and ->sequential. Add
a TD_DDIR_* for each of these, so we can store them as one value.
A prerequisite for the next parsing cleanup.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Fri, 23 Feb 2007 07:45:55 +0000 (08:45 +0100)]
Add option to select how to service multiple files
Right now we just round robin the open files, but sometimes you
just want to randomly go through the files. Add a 'file_service'
option for that, default to round robin still.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 19:33:01 +0000 (20:33 +0100)]
Dump io_u on timeout
It's still disabled, though.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 18:37:53 +0000 (19:37 +0100)]
Correct spelling error
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 18:36:48 +0000 (19:36 +0100)]
Add more context to the error messages
Errors like:
fio: pid=0, err=22/file:filesetup.c:380, error=Invalid argument
do not give a lot of clue as to what is wrong, unless you
have a matching source. So add a context relevant info
message as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 13:08:36 +0000 (14:08 +0100)]
List syslet-rw as a supported option in the ioengine help dump
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 13:08:13 +0000 (14:08 +0100)]
syslet: syscall still needs void * cast
It avoids the long -> structure pointer cast warning.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 13:07:39 +0000 (14:07 +0100)]
Don't check st_size for special files
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 12:49:36 +0000 (13:49 +0100)]
syslet: typo
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 11:26:57 +0000 (12:26 +0100)]
Further improve thread handling
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 11:26:20 +0000 (12:26 +0100)]
Fix crash on thread exit
If we had multiple threads, we could corrupt the heap by
freeing memory we did not alloc.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 11:11:26 +0000 (12:11 +0100)]
Thread waitpid() error check
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 10:53:00 +0000 (11:53 +0100)]
Improve thread reap handling
It's a bit of a mess currently, streamline and clean it up.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 10:30:05 +0000 (11:30 +0100)]
Disable timeout handling for now
It needs to get some more testing. It appears to work fine, just
want to be a little cautious.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 10:24:59 +0000 (11:24 +0100)]
Include engines in dependency check
Changing fio.h sometimes didn't trigger rebuild of the IO engines,
causing weird problems.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 09:39:01 +0000 (10:39 +0100)]
io_u timeout handling
Further measures to prevent fio getting stuck, even in case of
engine timeout errors.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 10:19:39 +0000 (11:19 +0100)]
Track io_u state (free or in-flight)
That way we can catch proper use by fio, so we don't get stuck
in cleanup_pending_aio() if someone forgot to put_io_u() in an
error path.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 10:11:48 +0000 (11:11 +0100)]
No need to cast async_exec() syscall to void * anymore
Ingo forward declared the types.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 22 Feb 2007 10:08:52 +0000 (11:08 +0100)]
syslet engine: style fix and ->queue() error return value fix
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Ingo Molnar [Wed, 21 Feb 2007 22:25:44 +0000 (23:25 +0100)]
v3 syslet engine support
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 22:02:39 +0000 (23:02 +0100)]
Still need to put io_u on early exit
The previous fix was too drastic, if we don't put the io_u on early
exit, cleanup_pending_aio() will stall forever waiting for it.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 19:28:14 +0000 (20:28 +0100)]
Correct io_u_*_complete() return checking
An error is < 0, not any non-zero value... This unbreaks verify again.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 19:14:33 +0000 (20:14 +0100)]
Don't overwrite error
The first error is usually the most interesting, so don't overwrite
in __td_verror().
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 19:10:42 +0000 (20:10 +0100)]
Fix double io_u free on error in do_verify()
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 15:35:29 +0000 (16:35 +0100)]
64-bit compile warnings
Just some ptr -> int error casts, nothing critical.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 09:22:55 +0000 (10:22 +0100)]
Change IO latency histogram to be in power-of-10
Power of 2 is just confusing for latencies, make the series
more natural by doing 1, 2, 4, 10, 20, 50, etc.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 21 Feb 2007 09:07:40 +0000 (10:07 +0100)]
Makefile: libdir is not used anymore
We link in the io engines.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 19:54:45 +0000 (20:54 +0100)]
More __must_check annotations
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 19:52:51 +0000 (20:52 +0100)]
Static error value checking
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 18:49:57 +0000 (19:49 +0100)]
mmap IO engine cannot extend a file
We need to ftruncate it to the wanted size first, or the mmap
write will terminate with SIGBUS.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 18:41:08 +0000 (19:41 +0100)]
Leftover debug message
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 13:37:26 +0000 (14:37 +0100)]
Add low water mark for queuing depth
Current fio will attempt to keep the queue full at all times,
but sometimes that's not what you want. Add iodepth_low to
indicate a low water mark for queuing depth, so that when we
see a FIO_Q_BUSY or run out of free requests, let the queue
drain down to the iodepth_low setting before building it up
again.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 12:58:20 +0000 (13:58 +0100)]
First step for group reporting
Put most of the stats into a dedicated structure, so we can
later share such a structure between threads.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 10:34:54 +0000 (11:34 +0100)]
Fix sync engine completion latency
td_io_queue() needs to differentiate between the sync and async
engines wrt setting issue_time.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 09:58:34 +0000 (10:58 +0100)]
Update io_u.c comments
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 09:57:34 +0000 (10:57 +0100)]
Improve submission latency calculation
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 09:45:57 +0000 (10:45 +0100)]
Use 0 timeout for command completion peek
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Tue, 20 Feb 2007 09:22:01 +0000 (10:22 +0100)]
Update documentation wrt comment
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Ingo Molnar [Tue, 20 Feb 2007 09:19:44 +0000 (10:19 +0100)]
fio: allow '#' comments
allow script-type comment's:
# comment
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Tue, 20 Feb 2007 09:19:41 +0000 (10:19 +0100)]
fio: syslet.h build fix
update syslet.h to build fine even if __user is not defined.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Jens Axboe [Mon, 19 Feb 2007 19:13:09 +0000 (20:13 +0100)]
Be safe and re-prep requeue io_u's
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 18:06:41 +0000 (19:06 +0100)]
Missing clear of some IO state
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 15:01:32 +0000 (16:01 +0100)]
Clean core files on make clean
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 15:00:42 +0000 (16:00 +0100)]
Fix busy looping for io_u_queued_complete()
If min_events > 0, don't set a 0 timeout or we'll end up
busy looping in the io engine getevents handler.
Just disable the timeout for now, perhaps we'll reuse it
in the future to prevent a thread from stalling too long
there.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 12:21:35 +0000 (13:21 +0100)]
Verify requeue handling
If file is already filled, it's a requeue. In that case, don't grab
a new io_piece, we already filled the offsets in the io_u.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 12:16:12 +0000 (13:16 +0100)]
Retrieve next file to service in get_io_u()
This improves requeue handling, we don't want to inadvertently
skip a file because we requeue an io_u.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 12:08:12 +0000 (13:08 +0100)]
Add support for queuing > 1 command at the time
For the async engines, we currently do queuing by issuing one
command at the the time. Improve this by adding a ->commit()
hook to complement the ->queue() hook. When ->queue() returns
FIO_Q_BUSY, call ->commit() to actually send off the io to the
kernel.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Mon, 19 Feb 2007 09:06:17 +0000 (10:06 +0100)]
Differentiate between bool error return and real error value
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Sun, 18 Feb 2007 11:47:29 +0000 (12:47 +0100)]
Cleanup end IO handling
Abstract out the end IO handling, so that callers don't have to
keep track of completion details. Then we can make the
io_completion_data structure private to io_u, and just provide to
functions to end io - one for sync completes, one for queued completes.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Sun, 18 Feb 2007 06:47:14 +0000 (07:47 +0100)]
Unify and fixup error handling
First step in getting ->queue() and ->getevents() handled in
a more sane fashion.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>