rate-submit: call ioengine post_init when starting workers
authorVincent Fu <vincent.fu@wdc.com>
Thu, 24 Jan 2019 19:26:42 +0000 (14:26 -0500)
committerJens Axboe <axboe@kernel.dk>
Thu, 24 Jan 2019 20:58:00 +0000 (13:58 -0700)
ioengines with post_init steps were not fully fully initialized by
offload worker threads because the post_init function was never called.

Without this patch all libaio operations submitted in offload mode fail
because the ioengine was not fully initialized.

Fixes: 2041bd343da1 ("engines/libaio: add preliminary support for pre-mapped IO buffers")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
rate-submit.c

index b07a207273b9d68223f506e4fb0b3f824d999fbd..cf00d9bc75c56f057b41a337ae8bdc740aebaa66 100644 (file)
@@ -165,6 +165,9 @@ static int io_workqueue_init_worker_fn(struct submit_worker *sw)
        if (td_io_init(td))
                goto err_io_init;
 
        if (td_io_init(td))
                goto err_io_init;
 
+       if (td->io_ops->post_init && td->io_ops->post_init(td))
+               goto err_io_init;
+
        set_epoch_time(td, td->o.log_unix_epoch);
        fio_getrusage(&td->ru_start);
        clear_io_state(td, 1);
        set_epoch_time(td, td->o.log_unix_epoch);
        fio_getrusage(&td->ru_start);
        clear_io_state(td, 1);