Commit 9ec9c8b3 authored by Changpeng Liu's avatar Changpeng Liu Committed by Jim Harris
Browse files

examples/nvme: add missed spdk_env_fini() when exiting



Althrough `rte_eal_cleanup` will be called in the destructor
function when exiting the application, it's OK not to call
`spdk_env_fini`, we still add this function call in case
there are cleanup function need to call in future.

Change-Id: I0a3eca44c5ed1d62059796ea8f1977fb19356939
Signed-off-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10904


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
parent 6ac23b3e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1074,8 +1074,8 @@ int main(int argc, char **argv)
	}
	if (spdk_env_init(&opts) < 0) {
		fprintf(stderr, "Unable to initialize SPDK env\n");
		rc = -1;
		goto cleanup;
		unregister_trids();
		return -1;
	}

	g_tsc_rate = spdk_get_ticks_hz();
@@ -1135,6 +1135,8 @@ cleanup:
	unregister_namespaces();
	unregister_controllers();

	spdk_env_fini();

	if (rc != 0) {
		fprintf(stderr, "%s: errors occurred\n", argv[0]);
	}
+12 −6
Original line number Diff line number Diff line
@@ -1093,7 +1093,7 @@ main(int argc, char **argv)
	struct worker_thread *worker, *main_worker;
	unsigned main_core;
	char task_pool_name[30];
	uint32_t task_count;
	uint32_t task_count = 0;
	struct spdk_env_opts opts;

	rc = parse_args(argc, argv);
@@ -1114,15 +1114,18 @@ main(int argc, char **argv)
	g_arbitration.tsc_rate = spdk_get_ticks_hz();

	if (register_workers() != 0) {
		return 1;
		rc = 1;
		goto exit;
	}

	if (register_controllers() != 0) {
		return 1;
		rc = 1;
		goto exit;
	}

	if (associate_workers_with_ns() != 0) {
		return 1;
		rc = 1;
		goto exit;
	}

	snprintf(task_pool_name, sizeof(task_pool_name), "task_pool_%d", getpid());
@@ -1140,7 +1143,8 @@ main(int argc, char **argv)
					sizeof(struct arb_task), 0, SPDK_ENV_SOCKET_ID_ANY);
	if (task_pool == NULL) {
		fprintf(stderr, "could not initialize task pool\n");
		return 1;
		rc = 1;
		goto exit;
	}

	print_configuration(argv[0]);
@@ -1166,10 +1170,12 @@ main(int argc, char **argv)

	print_stats();

exit:
	unregister_controllers();

	cleanup(task_count);

	spdk_env_fini();

	if (rc != 0) {
		fprintf(stderr, "%s: errors occurred\n", argv[0]);
	}
+2 −0
Original line number Diff line number Diff line
@@ -327,5 +327,7 @@ int main(int argc, char **argv)
		spdk_nvme_detach_poll(detach_ctx);
	}

	spdk_env_fini();

	return 0;
}
+4 −0
Original line number Diff line number Diff line
@@ -1464,6 +1464,10 @@ static void spdk_fio_cleanup(struct thread_data *td)
			pthread_join(g_ctrlr_thread_id, NULL);
		}
	}

	if (g_spdk_env_initialized) {
		spdk_env_fini();
	}
}

/* This function enables addition of SPDK parameters to the fio config
+8 −5
Original line number Diff line number Diff line
@@ -507,14 +507,14 @@ int main(int argc, char **argv)
	rc = spdk_nvme_probe(&g_trid, NULL, probe_cb, attach_cb, NULL);
	if (rc != 0) {
		fprintf(stderr, "spdk_nvme_probe() failed\n");
		cleanup();
		return 1;
		rc = 1;
		goto exit;
	}

	if (TAILQ_EMPTY(&g_controllers)) {
		fprintf(stderr, "no NVMe controllers found\n");
		cleanup();
		return 1;
		rc = 1;
		goto exit;
	}

	printf("Initialization complete.\n");
@@ -524,5 +524,8 @@ int main(int argc, char **argv)
		spdk_vmd_fini();
	}

	return 0;
exit:
	cleanup();
	spdk_env_fini();
	return rc;
}
Loading