Upon detaching a device in a secondary process, DPDK 18.11 will try to detach it from the primary process as well. SPDK doesn't support such hot-detach and will reject it in the primary process. That will cause the secondary process to also reject its detach. The device in the secondary process will be still there in DPDK, but for SPDK it will remain inaccessible - neither attach, nor enumerate will work on it. To fix it, we make our attach and enumerate functions always check the process local list of devices probed by DPDK, but not attached in SPDK. Looking at the patch from a different perspective, it simply introduces error handling for the DPDK detach function. If a device failed to detach, we'll now maintain it locally in SPDK to make it attach-able again. Change-Id: I8c509a571bea7a9fb413c9c2bfd64c62ad91074b Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/434413 (master) Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448375 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> |
||
---|---|---|
.. | ||
env_internal.h | ||
env.c | ||
env.mk | ||
init.c | ||
Makefile | ||
memory.c | ||
pci_ioat.c | ||
pci_nvme.c | ||
pci_virtio.c | ||
pci.c | ||
threads.c | ||
vtophys.c |