X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=ioengines.c;h=ab5b2245131fb1abb5d2e6b51a94227522e78991;hp=1b510dfe1daef46cd2be9c17255fff438a8d9928;hb=e4dd8a093ce7f13094460feead61d83c0c04f0ce;hpb=36167d82e5f49dee91c6d2cd426068edee90e36f diff --git a/ioengines.c b/ioengines.c index 1b510dfe..ab5b2245 100644 --- a/ioengines.c +++ b/ioengines.c @@ -66,11 +66,10 @@ void unregister_ioengine(struct ioengine_ops *ops) INIT_LIST_HEAD(&ops->list); } -int register_ioengine(struct ioengine_ops *ops) +void register_ioengine(struct ioengine_ops *ops) { INIT_LIST_HEAD(&ops->list); list_add_tail(&ops->list, &engine_list); - return 0; } static struct ioengine_ops *find_ioengine(const char *name) @@ -187,9 +186,20 @@ int td_io_getevents(struct thread_data *td, int min, int max, int td_io_queue(struct thread_data *td, struct io_u *io_u) { - fio_gettime(&io_u->issue_time, NULL); + int ret; + + if (td->io_ops->flags & FIO_SYNCIO) + 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); + ret = td->io_ops->queue(td, io_u); + + if ((td->io_ops->flags & FIO_SYNCIO) == 0) + fio_gettime(&io_u->issue_time, NULL); + + return ret; } int td_io_init(struct thread_data *td) @@ -199,3 +209,11 @@ int td_io_init(struct thread_data *td) return 0; } + +int td_io_commit(struct thread_data *td) +{ + if (td->io_ops->commit) + return td->io_ops->commit(td); + + return 0; +}