X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=rate-submit.c;h=92cb6222cd0512e00dea844b7762e7c0c7250390;hp=a1d55916c0dd7b4fe716826865d7681197834aeb;hb=d7bb6180f831091c468e5aa749b142efd5eddda4;hpb=155f2f027b34321f6f5abe79c09ece8ecca25046 diff --git a/rate-submit.c b/rate-submit.c index a1d55916..92cb6222 100644 --- a/rate-submit.c +++ b/rate-submit.c @@ -1,6 +1,13 @@ +/* + * Rated submission helpers + * + * Copyright (C) 2015 Jens Axboe + * + */ #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) @@ -218,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, @@ -228,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); +}