3c722d6fae
With all the error checks and segfault preventions in place, we can finally enable hotplug in a multi-process scenario for DPDK 18.11+. If a device is attached in the primary process, it will send an attach IPC request to the secondary process which needs to succeed. Until now it would get rejected, and the attach would fail in all the processes. The device in secondary process will be now probed by DPDK and will be put into the process local SPDK list of devices to be locally attached. Either SPDK will attach it sometime later on any attach/enumerate request, or DPDK will remove it automatically once the same device in the primary process gets removed. We also allow the surprise attach in primary processes, as it's technically possible for the pci devices (NVMe) to be attached exclusively from the secondary process. The fact that the NVMe stack doesn't support it is another story. Currently the NVMe stack will handle the failure by itself just fine. Change-Id: Ia24a8b4610cc7c659f59a2fdda9d8a78e58af873 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/434416 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>