From e7a300e0965cfdc02816bd4e71275f472c6bf25b Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Tue, 24 Dec 2019 01:38:41 -0500 Subject: [PATCH] bdevperf: Free all targets before exiting bdevperf application We will use SPDK application framework (SPDK thread, IO channel, and etc) to manage IO target groups, and will need to free IO target groups before exiting bdevperf application. As a preparation, move bdevperf_free_targets() before returning from spdk_app_start(). Signed-off-by: Shuhei Matsumoto Change-Id: Id695a88107f87a9573c281f7f7d26d91d3a307b5 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/478778 Tested-by: SPDK CI Jenkins Community-CI: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- test/bdev/bdevperf/bdevperf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/bdev/bdevperf/bdevperf.c b/test/bdev/bdevperf/bdevperf.c index 6d6bae41d..e21c33864 100644 --- a/test/bdev/bdevperf/bdevperf.c +++ b/test/bdev/bdevperf/bdevperf.c @@ -470,6 +470,7 @@ end_run(void *arg1, void *arg2) if (g_request && !g_shutdown) { rpc_perform_tests_cb(rc); } else { + bdevperf_free_targets(); spdk_app_stop(rc); } } @@ -1316,6 +1317,7 @@ bdevperf_run(void *arg1) rc = bdevperf_test(); if (rc) { + bdevperf_free_targets(); spdk_app_stop(1); return; } @@ -1342,6 +1344,7 @@ spdk_bdevperf_shutdown_cb(void) g_shutdown = true; if (g_target_count == 0) { + bdevperf_free_targets(); spdk_app_stop(0); return; } @@ -1497,7 +1500,6 @@ main(int argc, char **argv) g_run_failed = true; } - bdevperf_free_targets(); spdk_app_fini(); return g_run_failed; }