diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2009-07-03 08:38:50 +0200 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-07-03 08:38:50 +0200 |
commit | cb21168269d746d80d82f28ed4db65c2750a8fd7 (patch) | |
tree | d70c0ce50c59d22bf5e7d0320c9c7ad37024d439 /ioengines.c | |
parent | 8b5f73134cfaab8e3f72bea4166e57c59c635b69 (diff) | |
download | fio-cb21168269d746d80d82f28ed4db65c2750a8fd7.tar.gz |
Add warning about potentially missing O_DIRECT support or bad alignment
If the first O_DIRECT fails, then it's likely because:
1) The file system does not support O_DIRECT, or
2) The user set iomem_align to an unsupported value.
Let the user know, otherwise they only see EINVAL and may not realize
why things aren't working.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'ioengines.c')
-rw-r--r-- | ioengines.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ioengines.c b/ioengines.c index 4c97d038..7f0a5c45 100644 --- a/ioengines.c +++ b/ioengines.c @@ -245,6 +245,18 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) unlock_file(td, io_u->file); + /* + * Add warning for O_DIRECT so that users have an easier time + * spotting potentially bad alignment. If this triggers for the first + * IO, then it's likely an alignment problem or because the host fs + * does not support O_DIRECT + */ + if (io_u->error == EINVAL && td->io_issues[io_u->ddir] == 1 && + td->o.odirect) { + log_info("fio: first direct IO errored. File system may not " + "support direct IO, or iomem_align= is bad.\n"); + } + if (!td->io_ops->commit) { io_u_mark_submit(td, 1); io_u_mark_complete(td, 1); |