From da06e2ea034b472c2ae812b9a58bea12aea51f5c Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Thu, 20 Apr 2017 13:19:05 +0800 Subject: [PATCH] fio_plugin: make spdk_env_init only once This patch will be prepare to support multi threads. Change-Id: I2234ae1d564c9cf17b92c85fd0a414adaa639bf2 Signed-off-by: Ziye Yang --- examples/nvme/fio_plugin/fio_plugin.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/nvme/fio_plugin/fio_plugin.c b/examples/nvme/fio_plugin/fio_plugin.c index c36e547b8..f3857e51c 100644 --- a/examples/nvme/fio_plugin/fio_plugin.c +++ b/examples/nvme/fio_plugin/fio_plugin.c @@ -50,6 +50,8 @@ #define MAX_LCORE_COUNT 63 +bool spdk_env_initialized; + struct spdk_fio_request { struct io_u *io; @@ -208,10 +210,13 @@ static int spdk_fio_setup(struct thread_data *td) fio_thread->iocq = calloc(fio_thread->iocq_size, sizeof(struct io_u *)); assert(fio_thread->iocq != NULL); - spdk_env_opts_init(&opts); - opts.name = "fio"; - opts.dpdk_mem_size = 512; - spdk_env_init(&opts); + if (!spdk_env_initialized) { + spdk_env_opts_init(&opts); + opts.name = "fio"; + opts.dpdk_mem_size = 512; + spdk_env_init(&opts); + spdk_env_initialized = true; + } for_each_file(td, f, i) { memset(&trid, 0, sizeof(trid));