Commit 0bc0463e authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

test/bdevio: Use local instance of cpuset in test_main()



bdevio test tool is not critical but change it to use instance
of cpuset to spread statically allocation of cpuset throughout.

Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I9722d491cb6ec3202312285013105f7b6aeb1f15
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/478581


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Community-CI: SPDK CI Jenkins <sys_sgci@intel.com>
parent 04033955
Loading
Loading
Loading
Loading
+7 −18
Original line number Diff line number Diff line
@@ -1131,22 +1131,15 @@ __construct_targets(void *arg)
static void
test_main(void *arg1)
{
	struct spdk_cpuset *tmpmask, *appmask;
	struct spdk_cpuset tmpmask = {}, *appmask;
	uint32_t cpu, init_cpu;

	pthread_mutex_init(&g_test_mutex, NULL);
	pthread_cond_init(&g_test_cond, NULL);

	tmpmask = spdk_cpuset_alloc();
	if (tmpmask == NULL) {
		spdk_app_stop(-1);
		return;
	}

	appmask = spdk_app_get_core_mask();

	if (spdk_cpuset_count(appmask) < 3) {
		spdk_cpuset_free(tmpmask);
		spdk_app_stop(-1);
		return;
	}
@@ -1156,36 +1149,32 @@ test_main(void *arg1)

	for (cpu = 0; cpu < SPDK_ENV_LCORE_ID_ANY; cpu++) {
		if (cpu != init_cpu && spdk_cpuset_get_cpu(appmask, cpu)) {
			spdk_cpuset_zero(tmpmask);
			spdk_cpuset_set_cpu(tmpmask, cpu, true);
			g_thread_ut = spdk_thread_create("ut_thread", tmpmask);
			spdk_cpuset_zero(&tmpmask);
			spdk_cpuset_set_cpu(&tmpmask, cpu, true);
			g_thread_ut = spdk_thread_create("ut_thread", &tmpmask);
			break;
		}
	}

	if (cpu == SPDK_ENV_LCORE_ID_ANY) {
		spdk_cpuset_free(tmpmask);
		spdk_app_stop(-1);
		return;
	}

	for (cpu++; cpu < SPDK_ENV_LCORE_ID_ANY; cpu++) {
		if (cpu != init_cpu && spdk_cpuset_get_cpu(appmask, cpu)) {
			spdk_cpuset_zero(tmpmask);
			spdk_cpuset_set_cpu(tmpmask, cpu, true);
			g_thread_io = spdk_thread_create("io_thread", tmpmask);
			spdk_cpuset_zero(&tmpmask);
			spdk_cpuset_set_cpu(&tmpmask, cpu, true);
			g_thread_io = spdk_thread_create("io_thread", &tmpmask);
			break;
		}
	}

	if (cpu == SPDK_ENV_LCORE_ID_ANY) {
		spdk_cpuset_free(tmpmask);
		spdk_app_stop(-1);
		return;
	}

	spdk_cpuset_free(tmpmask);

	if (g_wait_for_tests) {
		/* Do not perform any tests until RPC is received */
		return;