From 103b174e80264fc6867fa349dee356c81c3337ca Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 8 Dec 2015 12:36:27 -0700 Subject: [PATCH] rate-submit: clean up init/exit helpers Signed-off-by: Jens Axboe --- backend.c | 7 ++----- rate-submit.c | 18 +++++++++++++++++- rate-submit.h | 5 ++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/backend.c b/backend.c index d3996851..ae261203 100644 --- a/backend.c +++ b/backend.c @@ -1555,8 +1555,7 @@ static void *thread_main(void *data) fio_verify_init(td); - if ((o->io_submit_mode == IO_MODE_OFFLOAD) && - workqueue_init(td, &td->io_wq, &rated_wq_ops, td->o.iodepth)) + if (rate_submit_init(td)) goto err; fio_gettime(&td->epoch, NULL); @@ -1654,10 +1653,8 @@ static void *thread_main(void *data) fio_writeout_logs(td); - if (o->io_submit_mode == IO_MODE_OFFLOAD) - workqueue_exit(&td->io_wq); - iolog_compress_exit(td); + rate_submit_exit(td); if (o->exec_postrun) exec_string(o, o->exec_postrun, (const char *)"postrun"); diff --git a/rate-submit.c b/rate-submit.c index 3d358152..39b552d4 100644 --- a/rate-submit.c +++ b/rate-submit.c @@ -224,7 +224,7 @@ static void io_workqueue_update_acct_fn(struct submit_worker *sw) } -struct workqueue_ops rated_wq_ops = { +static struct workqueue_ops rated_wq_ops = { .fn = io_workqueue_fn, .pre_sleep_flush_fn = io_workqueue_pre_sleep_flush_fn, .pre_sleep_fn = io_workqueue_pre_sleep_fn, @@ -234,3 +234,19 @@ struct workqueue_ops rated_wq_ops = { .init_worker_fn = io_workqueue_init_worker_fn, .exit_worker_fn = io_workqueue_exit_worker_fn, }; + +int rate_submit_init(struct thread_data *td) +{ + if (td->o.io_submit_mode != IO_MODE_OFFLOAD) + return 0; + + return workqueue_init(td, &td->io_wq, &rated_wq_ops, td->o.iodepth); +} + +void rate_submit_exit(struct thread_data *td) +{ + if (td->o.io_submit_mode != IO_MODE_OFFLOAD) + return; + + workqueue_exit(&td->io_wq); +} diff --git a/rate-submit.h b/rate-submit.h index 33bb9d77..b4ca1292 100644 --- a/rate-submit.h +++ b/rate-submit.h @@ -1,8 +1,7 @@ #ifndef FIO_RATE_SUBMIT #define FIO_RATE_SUBMIT -#include "workqueue.h" - -extern struct workqueue_ops rated_wq_ops; +int rate_submit_init(struct thread_data *); +void rate_submit_exit(struct thread_data *); #endif -- 2.25.1