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>
diff --git a/ioengines.c b/ioengines.c
index 1b510df..16ea928 100644
--- a/ioengines.c
+++ b/ioengines.c
@@ -189,6 +189,9 @@
{
fio_gettime(&io_u->issue_time, NULL);
+ if (io_u->ddir != DDIR_SYNC)
+ td->io_issues[io_u->ddir]++;
+
return td->io_ops->queue(td, io_u);
}
@@ -199,3 +202,11 @@
return 0;
}
+
+int td_io_commit(struct thread_data *td)
+{
+ if (td->io_ops->commit)
+ return td->io_ops->commit(td);
+
+ return 0;
+}