From 7699cdeed40e86eb163fb9d4254d29e87610fc74 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Thu, 14 Jun 2018 02:26:33 -0700 Subject: [PATCH] bdevperf: add bdevperf_submit_task helper function This will be needed when we need to re-attempt an IO submission when the bdev_io pool is exhausted. Signed-off-by: Jim Harris Change-Id: I0500ee1b7881c1be7ba8a72a930190d85e7a0f77 Reviewed-on: https://review.gerrithub.io/415301 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker --- test/bdev/bdevperf/bdevperf.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/test/bdev/bdevperf/bdevperf.c b/test/bdev/bdevperf/bdevperf.c index 00318cf02..a816e9b10 100644 --- a/test/bdev/bdevperf/bdevperf.c +++ b/test/bdev/bdevperf/bdevperf.c @@ -390,29 +390,18 @@ bdevperf_prep_task(struct bdevperf_task *task) } static void -bdevperf_submit_single(struct io_target *target, struct bdevperf_task *task) +bdevperf_submit_task(struct bdevperf_task *task) { - spdk_bdev_io_completion_cb cb_fn; + struct io_target *target = task->target; struct spdk_bdev_desc *desc; struct spdk_io_channel *ch; + spdk_bdev_io_completion_cb cb_fn; void *rbuf; int rc; desc = target->bdev_desc; ch = target->ch; - if (!task) { - if (!TAILQ_EMPTY(&target->task_list)) { - task = TAILQ_FIRST(&target->task_list); - TAILQ_REMOVE(&target->task_list, task, link); - } else { - printf("Task allocation failed\n"); - abort(); - } - } - - bdevperf_prep_task(task); - switch (task->io_type) { case SPDK_BDEV_IO_TYPE_WRITE: cb_fn = (g_verify || g_reset) ? bdevperf_verify_write_complete : bdevperf_complete; @@ -448,6 +437,23 @@ bdevperf_submit_single(struct io_target *target, struct bdevperf_task *task) target->current_queue_depth++; } +static void +bdevperf_submit_single(struct io_target *target, struct bdevperf_task *task) +{ + if (!task) { + if (!TAILQ_EMPTY(&target->task_list)) { + task = TAILQ_FIRST(&target->task_list); + TAILQ_REMOVE(&target->task_list, task, link); + } else { + printf("Task allocation failed\n"); + abort(); + } + } + + bdevperf_prep_task(task); + bdevperf_submit_task(task); +} + static void bdevperf_submit_io(struct io_target *target, int queue_depth) {