X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=ioengines.c;h=b89a121b4526706cff19017b80ad2328a8687581;hp=b724e0e90e089668ef0a32acd1eb95c7133b4e09;hb=a3ae5b057588f555a1544ec749167a44c5a071aa;hpb=a9da8ab2169810667aeb26f857a8ac3c056e4d61 diff --git a/ioengines.c b/ioengines.c index b724e0e9..b89a121b 100644 --- a/ioengines.c +++ b/ioengines.c @@ -49,10 +49,6 @@ static int check_engine_ops(struct ioengine_ops *ops) log_err("%s: no getevents handler\n", ops->name); return 1; } - if (!ops->queue) { - log_err("%s: no queue handler\n", ops->name); - return 1; - } return 0; } @@ -299,6 +295,7 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) if (ddir_rw(ddir)) { td->io_issues[ddir]++; td->io_issue_bytes[ddir] += buflen; + td->rate_io_issue_bytes[ddir] += buflen; } ret = td->io_ops->queue(td, io_u); @@ -308,6 +305,7 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) if (ret == FIO_Q_BUSY && ddir_rw(ddir)) { td->io_issues[ddir]--; td->io_issue_bytes[ddir] -= buflen; + td->rate_io_issue_bytes[ddir] -= buflen; } /* @@ -327,7 +325,8 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) td->o.odirect) { log_info("fio: first direct IO errored. File system may not " - "support direct IO, or iomem_align= is bad.\n"); + "support direct IO, or iomem_align= is bad. Try " + "setting direct=0.\n"); } if (!td->io_ops->commit || io_u->ddir == DDIR_TRIM) { @@ -343,10 +342,10 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) } else if (ret == FIO_Q_QUEUED) { int r; - if (ddir_rw(io_u->ddir)) { - td->io_u_queued++; + td->io_u_queued++; + + if (ddir_rw(io_u->ddir)) td->ts.total_io_u[io_u->ddir]++; - } if (td->io_u_queued >= td->o.iodepth_batch) { r = td_io_commit(td);