numam-spdk/examples
Niklas Cassel 09dd961b35 nvme/fio_plugin: fix report_zones
Commit f69367c788 ("fio_nvme: defer qpair allocation to file_open
callback") moved the qpair allocation from spdk_fio_setup() to
spdk_fio_open(). This broke spdk_fio_report_zones(), which needs a
qpair in order to get the initial state of the zones.

setup_files() in FIO calls td->io_ops->setup() (spdk_fio_setup()),
followed by zbd_init_files(), which calls zbd_init_zone_info(),
which calls zbd_create_zone_info(), which calls parse_zone_info(),
which calls zbd_report_zones(), which calls td->io_ops->report_zones()
(spdk_fio_report_zones()).

i.e. spdk_fio_report_zones() will always be called directly after
spdk_fio_setup(). .report_zones() is even called before the per
thread ioengine .init() callback.

Therefore, spdk_fio_report_zones() is called before the ioengine
.open_file() callback.

This is done in order to ensure that all threads will share the same
zbd_info struct, which contains the per zone locks.

Since SPDK nvme ioengine no longer initializes the qpairs in .setup(),
create a temporary qpair in .report_zones().

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Change-Id: Ic376ac7844e40fceff092900ae7e4714bccf38e6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7590
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2021-04-26 16:16:42 +00:00
..
accel perf: remove unused g_tsc_us_rate. 2021-04-15 11:25:21 +00:00
bdev bdev/hello_world: for zoned bdevs, reset the zone before write 2021-03-29 10:17:45 +00:00
blob build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
interrupt_tgt examples/interrupt_tgt: mark reactor_set_interrupt_mode RPC private 2021-04-26 08:39:59 +00:00
ioat build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
nvme nvme/fio_plugin: fix report_zones 2021-04-26 16:16:42 +00:00
nvmf event: Add return code to spdk_rpc_initialize 2021-03-12 08:38:10 +00:00
sock build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
vmd env_dpdk: save hotplug timeout timestamps separate from rte_devargs 2021-04-23 08:16:24 +00:00
Makefile examples/interrupt_tgt: Fix app compiling error without vhost. 2021-01-26 08:33:44 +00:00