HOWTO/man: clarify that the usr/sys utilization numbers are averages
[fio.git] / ioengines.c
index 958731dc3bfab9bda2d7765e61d3f31613b02946..b89a121b4526706cff19017b80ad2328a8687581 100644 (file)
@@ -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;
        }
 
        /*
@@ -344,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);