From 6fed60cb32f36a3fbd0d689758dbe08bb8407a8e Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Tue, 10 Sep 2019 11:36:30 +0900 Subject: [PATCH] bdevperf: Factor out queueing I/O waiting for buffer to a helper function This is a preparation to use zcopy APIs for write I/O. Signed-off-by: Shuhei Matsumoto Change-Id: I7c544fc08db029e1b5ff32458e53dcbb014a5722 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/467897 Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris --- test/bdev/bdevperf/bdevperf.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/test/bdev/bdevperf/bdevperf.c b/test/bdev/bdevperf/bdevperf.c index 9b818e74f..0a5f467d6 100644 --- a/test/bdev/bdevperf/bdevperf.c +++ b/test/bdev/bdevperf/bdevperf.c @@ -433,6 +433,17 @@ end_run(void *arg1, void *arg2) } } +static void +bdevperf_queue_io_wait_with_cb(struct bdevperf_task *task, spdk_bdev_io_wait_cb cb_fn) +{ + struct io_target *target = task->target; + + task->bdev_io_wait.bdev = target->bdev; + task->bdev_io_wait.cb_fn = cb_fn; + task->bdev_io_wait.cb_arg = task; + spdk_bdev_queue_io_wait(target->bdev, target->ch, &task->bdev_io_wait); +} + static void bdevperf_complete(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg) { @@ -514,10 +525,7 @@ bdevperf_verify_submit_read(void *cb_arg) } if (rc == -ENOMEM) { - task->bdev_io_wait.bdev = target->bdev; - task->bdev_io_wait.cb_fn = bdevperf_verify_submit_read; - task->bdev_io_wait.cb_arg = task; - spdk_bdev_queue_io_wait(target->bdev, target->ch, &task->bdev_io_wait); + bdevperf_queue_io_wait_with_cb(task, bdevperf_verify_submit_read); } else if (rc != 0) { printf("Failed to submit read: %d\n", rc); target->is_draining = true; @@ -699,10 +707,7 @@ bdevperf_submit_task(void *arg) } if (rc == -ENOMEM) { - task->bdev_io_wait.bdev = target->bdev; - task->bdev_io_wait.cb_fn = bdevperf_submit_task; - task->bdev_io_wait.cb_arg = task; - spdk_bdev_queue_io_wait(target->bdev, ch, &task->bdev_io_wait); + bdevperf_queue_io_wait_with_cb(task, bdevperf_submit_task); return; } else if (rc != 0) { printf("Failed to submit bdev_io: %d\n", rc);