From 8c433333af87e031de773f540fde81161293e649 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Wed, 3 Jul 2019 07:53:17 -0400 Subject: [PATCH] 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 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460443 Reviewed-by: Ben Walker Reviewed-by: Paul Luse Reviewed-by: Konrad Sztyber Reviewed-by: Darek Stojaczyk Tested-by: SPDK CI Jenkins --- test/bdev/bdevperf/bdevperf.c | 53 ++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/test/bdev/bdevperf/bdevperf.c b/test/bdev/bdevperf/bdevperf.c index 48ae37947..71c3d81bb 100644 --- a/test/bdev/bdevperf/bdevperf.c +++ b/test/bdev/bdevperf/bdevperf.c @@ -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