X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=rate-submit.c;h=92cb6222cd0512e00dea844b7762e7c0c7250390;hp=3d35815212f5e1ca67b1b79990d78abf90579241;hb=e35fb4c43ecc5b9d35cb5d980e811d3408fc5a4e;hpb=51575029ff4027f42ef6be374fd50b2cda5880b4 diff --git a/rate-submit.c b/rate-submit.c index 3d358152..92cb6222 100644 --- a/rate-submit.c +++ b/rate-submit.c @@ -7,6 +7,7 @@ #include "fio.h" #include "ioengine.h" #include "lib/getrusage.h" +#include "rate-submit.h" static int io_workqueue_fn(struct submit_worker *sw, struct workqueue_work *work) @@ -224,7 +225,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 +235,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, struct sk_out *sk_out) +{ + if (td->o.io_submit_mode != IO_MODE_OFFLOAD) + return 0; + + return workqueue_init(td, &td->io_wq, &rated_wq_ops, td->o.iodepth, sk_out); +} + +void rate_submit_exit(struct thread_data *td) +{ + if (td->o.io_submit_mode != IO_MODE_OFFLOAD) + return; + + workqueue_exit(&td->io_wq); +}