From: Jens Axboe Date: Fri, 3 Jul 2009 06:38:50 +0000 (+0200) Subject: Add warning about potentially missing O_DIRECT support or bad alignment X-Git-Tag: fio-1.30~1 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=cb21168269d746d80d82f28ed4db65c2750a8fd7;hp=8b5f73134cfaab8e3f72bea4166e57c59c635b69;ds=sidebyside 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 --- 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);