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 <james.r.harris@intel.com>
Change-Id: I0500ee1b7881c1be7ba8a72a930190d85e7a0f77

Reviewed-on: https://review.gerrithub.io/415301
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Jim Harris 2018-06-14 02:26:33 -07:00 committed by Daniel Verkamp
parent 89de425ed4
commit 7699cdeed4

View File

@ -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)
{