On Sat, 2016-10-22 at 21:19 +0300, Gregory Etelson wrote: > Hello > > I need to run DPDK networking and access NVMe device in the same process. > > rte_eal_init() initializes network PMD drivers normally > But spdk_nvme_probe() activates network devices probe for the second time and > rte exits with error. > > To resolve this failure I register NVMe controller driver as DPDK PMD. > Now I can pass NVMe device PCI address to EAL initialization with `-w' > parameter along with network devices > PMD template I use is attached below. > > Is there another way to run DPDK and SPDK in the same process ?  You found the best way right now, but I'm working with the DPDK community to improve here. It seems like the rte_pci module doesn't handle multiple calls to rte_eal_pci_probe, which is what SPDK is doing. The most important change to DPDK that needs to happen is that rte_eal_pci_probe needs to not call the driver initialization function for devices that already have a driver loaded. That's a very easy fix that solves your problem and I'll be submitting a patch to the DPDK community. Longer term I think we really need to work with DPDK to clean up some of these PCI interfaces so they're more dynamic and can handle devices and drivers coming and going at run time. > > Regards, > Gregory > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk