Commit 4b468d7c authored by Jim Harris's avatar Jim Harris Committed by Daniel Verkamp
Browse files

bdevperf: create task buffer pool after enumerating targets



This ensures we have calculated the correct minimum
buffer alignment before allocating the buffers.

Fixes issue reported by Ziye Yang that bdevperf did not
work with AIO bdev backend.

Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Ic223551cc3ce1fb723ffcd745513c04198f13433

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


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent c1f49bed
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -532,13 +532,18 @@ bdevperf_run(void *arg1, void *arg2)
	struct io_target *target;
	struct spdk_event *event;

	bdevperf_construct_targets();

	/*
	 * Create the task pool after we have enumerated the targets, so that we know
	 *  the min buffer alignment.  Some backends such as AIO have alignment restrictions
	 *  that must be accounted for.
	 */
	task_pool = rte_mempool_create("task_pool", 4096 * spdk_env_get_core_count(),
				       sizeof(struct bdevperf_task),
				       64, 0, NULL, NULL, task_ctor, NULL,
				       SOCKET_ID_ANY, 0);

	bdevperf_construct_targets();

	printf("Running I/O for %d seconds...\n", g_time_in_sec);
	fflush(stdout);