diff --git a/examples/nvme/fio_plugin/README.md b/examples/nvme/fio_plugin/README.md index 7e3dc6881..cadd732f9 100644 --- a/examples/nvme/fio_plugin/README.md +++ b/examples/nvme/fio_plugin/README.md @@ -39,7 +39,8 @@ To select NVMe devices, you simply pass an identifier as the filename in the for Remember that NVMe namespaces start at 1, not 0! Also, the notation uses '.' throughout, not ':'. For example - 0000.04.00.0/1. -Currently the fio_plugin is limited to a single thread, so only one job is supported. +Currently the SPDK fio plugin is limited to a single thread, so only one job is supported. +fio jobs must also specify thread=1 when using the SPDK fio plugin. When testing random workloads, it is recommended to set norandommap=1. fio's random map processing consumes extra CPU cycles which will degrade performance over time with diff --git a/examples/nvme/fio_plugin/fio_plugin.c b/examples/nvme/fio_plugin/fio_plugin.c index 7a501428b..db24795b7 100644 --- a/examples/nvme/fio_plugin/fio_plugin.c +++ b/examples/nvme/fio_plugin/fio_plugin.c @@ -179,6 +179,11 @@ static int spdk_fio_setup(struct thread_data *td) struct spdk_fio_thread *fio_thread; struct spdk_env_opts opts; + if (!td->o.use_thread) { + log_err("spdk: must set thread=1 when using spdk plugin\n"); + return 1; + } + fio_thread = calloc(1, sizeof(*fio_thread)); assert(fio_thread != NULL);