Commit 8c433333 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Darek Stojaczyk
Browse files

bdevperf: create bdevperf_test() to only perform tests



Separated out bdevperf_test() from bdevperf_run(),
so that in future RPC can directly call running the tests.

All global setup done at start of the application remains
in bdevperf_run().

This is series for adding RPC to bdevperf app.

Change-Id: I85950d4941d4325486a7dcf89f9766dcdd302657
Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460443


Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 162df577
Loading
Loading
Loading
Loading
+33 −20
Original line number Diff line number Diff line
@@ -1110,32 +1110,17 @@ verify_test_params(struct spdk_app_opts *opts)
	return 0;
}

static void
bdevperf_run(void *arg1)
static int
bdevperf_test(void)
{
	uint32_t i;
	struct io_target *target;
	struct spdk_event *event;
	int rc;

	rc = blockdev_heads_init();
	if (rc) {
		spdk_app_stop(1);
		return;
	}

	bdevperf_construct_targets();

	if (g_target_count == 0) {
		fprintf(stderr, "No valid bdevs found.\n");
		spdk_app_stop(1);
		return;
	}

	rc = bdevperf_construct_targets_tasks();
	if (rc) {
		spdk_app_stop(1);
		return;
		return rc;
	}

	printf("Running I/O for %" PRIu64 " seconds...\n", g_time_in_usec / 1000000);
@@ -1148,17 +1133,45 @@ bdevperf_run(void *arg1)
						    g_show_performance_period_in_usec);
	}

	g_master_core = spdk_env_get_current_core();
	/* Send events to start all I/O */
	for (i = 0; i < spdk_env_get_core_count(); i++) {
		target = g_head[i];
		if (target == NULL) {
			break;
			return -1;
		}
		event = spdk_event_allocate(target->lcore, bdevperf_submit_on_core,
					    target, NULL);
		spdk_event_call(event);
	}
	return 0;
}

static void
bdevperf_run(void *arg1)
{
	int rc;

	rc = blockdev_heads_init();
	if (rc) {
		spdk_app_stop(1);
		return;
	}

	g_master_core = spdk_env_get_current_core();

	bdevperf_construct_targets();

	if (g_target_count == 0) {
		fprintf(stderr, "No valid bdevs found.\n");
		spdk_app_stop(1);
		return;
	}

	rc = bdevperf_test();
	if (rc) {
		spdk_app_stop(1);
		return;
	}
}

static void