Spdk/lib/env_dpdk
Darek Stojaczyk 79b5618168 env_dpdk/pci: don't defer device detach while on the dpdk thread
By making dpdk device detach asynchronous we have
actually broken some cases where devices are re-attached
immediately after and fail since they were not detached
yet.

We'll need to make detach synchronous again, and for that
we'll wait for the background dpdk thread to perform all
necessary actions before we return from spdk_pci_device_detach().

However, device detach could be triggered from the very
same dpdk background thread as well. Waiting there would
cause a deadlock, so now we'll schedule asynchronous
device detach to the dpdk thread only if we're not on
that thread already.

This patch itself serves also as an optimization.

Change-Id: I86b7ac1b669169eee3325de2d28c2cc313e7d901
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460285
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-07-16 10:56:28 +00:00
..
env_internal.h env/dpdk: add spdk_pci_fini() 2019-03-28 14:50:46 +00:00
env.c env: Add an API to lookup the memory pool created by the primary process 2019-07-01 14:47:30 +00:00
env.mk dpdk: build and link QAT for both crypto and compression 2019-06-05 19:07:32 +00:00
init.c env_dpdk: set crypto log level to ERR 2019-05-13 15:46:50 +00:00
Makefile lib/env_dpdk: Added VMD PCI driver object 2019-05-29 20:35:11 +00:00
memory.c env_dpdk/memory: include rte_memory.h 2019-07-16 10:54:01 +00:00
pci_ioat.c ioat: add device IDs for new CB-DMA engines 2019-02-26 06:50:52 +00:00
pci_nvme.c pci: remove nvme-specific attach functions 2018-12-07 17:24:19 +00:00
pci_virtio.c pci: remove virtio-specific attach functions 2018-12-07 17:24:19 +00:00
pci_vmd.c lib/env_dpdk: Added VMD PCI driver object 2019-05-29 20:35:11 +00:00
pci.c env_dpdk/pci: don't defer device detach while on the dpdk thread 2019-07-16 10:56:28 +00:00
threads.c env: drop DPDK 16.07 support 2018-11-30 19:59:34 +00:00