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: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460443
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Tomasz Zawadzki 2019-07-03 07:53:17 -04:00 committed by Darek Stojaczyk
parent 162df57723
commit 8c433333af

View File

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