Commit 7699cdee authored by Jim Harris's avatar Jim Harris Committed by Daniel Verkamp
Browse files

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

Reviewed-on: https://review.gerrithub.io/415301


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 89de425e
Loading
Loading
Loading
Loading
+20 −14
Original line number Diff line number Diff line
@@ -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)
{