From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0514556268477575426==" MIME-Version: 1.0 From: Walker, Benjamin Subject: Re: [SPDK] SPDK & DPDK in one process Date: Mon, 24 Oct 2016 23:30:49 +0000 Message-ID: <1477351848.71904.43.camel@intel.com> In-Reply-To: 39927348.Sr4AkxKEFZ@polaris List-ID: To: spdk@lists.01.org --===============0514556268477575426== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 ?=C2=A0 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 call= s 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 d= river 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 th= ese PCI interfaces so they're more dynamic and can handle devices and drivers c= oming and going at run time. > = > Regards, > Gregory > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk --===============0514556268477575426==--