Spdk/examples
Mike Gerdts 9b754587c7 fio_plugin: bdev calls on spdk thread
This is a rework of commit 7722996dd2.

As the locks in bdev.c transition to spdk_spinlock, callers of
spdk_bdev_get_by_name() and any other function that uses an SPDK
spinlock needs to be executing from an spdk_thread.  This commit reverts
the earlier commit then fixes it with a different approach than was
previously used.

fio plugin functions that need to be on an SPDK thread into two parts:

1. fio API callback: transform args from fio into a spdk_fio_oat_ctx
   structure, then calls spdk_fio_sync_run_oat(). In the case of
   spdk_fio_setup(), the app thread is started in this part.
2. On App Thread (oat) callback: runs on the SPDK app thread via the
   poller spdk_init_thread_poll().

spdk_fio_sync_run_oat() sends a message to the app thread to have the
specified oat callback run. It wakees the poller loop via a condition
variable then waits for the oat callback to signal its completion via a
condition variable in the spdk_fio_oat_ctx.

Fixes issue #2818

Signed-off-by: Mike Gerdts <mgerdts@nvidia.com>
Change-Id: I5c82542bb9e9e6b8823e9d1da293050bba336b65
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15866
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2023-01-11 09:17:16 +00:00
..
accel examples/accel_perf: correct the unlock operation 2022-12-20 09:19:28 +00:00
bdev fio_plugin: bdev calls on spdk thread 2023-01-11 09:17:16 +00:00
blob add Intel copyright notices (and/or SPDX lic) where missing 2022-11-10 08:28:53 +00:00
idxd update Intel copyright notices 2022-11-10 08:28:53 +00:00
interrupt_tgt Add SPDX header to various files 2022-11-29 08:27:51 +00:00
ioat update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme hotplug: let device insertions/removals take priority 2023-01-09 11:16:50 +00:00
nvmf examples/nvmf: explicitly set the initial value for local variables 2022-12-13 09:26:18 +00:00
sock examples/sock: close the right sock object 2022-12-16 09:26:11 +00:00
util add Intel copyright notices (and/or SPDX lic) where missing 2022-11-10 08:28:53 +00:00
vmd examples/vmd: Add nvme library to VMD example apps 2022-12-05 09:35:14 +00:00
Makefile update Intel copyright notices 2022-11-10 08:28:53 +00:00