From c79a1c67465d0193b52e2ae4b64dd8362c575b2b Mon Sep 17 00:00:00 2001 From: Jerin Jacob Date: Wed, 24 Jun 2020 17:16:17 +0530 Subject: [PATCH] bus/pci: optimize bus scan In order to optimize the PCI management, RTE_KDRV_NONE based device driver probing removed by not adding them to list in the scan phase. The legacy virtio is the only consumer of RTE_KDRV_NONE based device driver probe scheme. The legacy virtio support will be available through the existing VFIO/UIO based kernel driver scheme. This patch also removes the deprecation notice for the same. Signed-off-by: Jerin Jacob --- doc/guides/rel_notes/deprecation.rst | 8 -------- doc/guides/rel_notes/release_20_08.rst | 2 ++ drivers/bus/pci/linux/pci.c | 25 +++---------------------- 3 files changed, 5 insertions(+), 30 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 0bee924255..d1034f60fd 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -130,11 +130,3 @@ Deprecation Notices Python 2 support will be completely removed in 20.11. In 20.08, explicit deprecation warnings will be displayed when running scripts with Python 2. - -* pci: Remove ``RTE_KDRV_NONE`` based device driver probing. - In order to optimize the DPDK PCI enumeration management, ``RTE_KDRV_NONE`` - based device driver probing will be removed in v20.08. - The legacy virtio is the only consumer of ``RTE_KDRV_NONE`` based device - driver probe scheme. The legacy virtio support will be available through - the existing VFIO/UIO based kernel driver scheme. - More details at https://patches.dpdk.org/patch/69351/ diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst index 7629b1fb38..a670155196 100644 --- a/doc/guides/rel_notes/release_20_08.rst +++ b/doc/guides/rel_notes/release_20_08.rst @@ -88,6 +88,8 @@ Removed Items Also, make sure to start the actual text at the margin. ========================================================= +* Removed ``RTE_KDRV_NONE`` based PCI device driver probing. + API Changes ----------- diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index da2f55b3af..a2198abf43 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -330,9 +330,10 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) dev->kdrv = RTE_KDRV_UIO_GENERIC; else dev->kdrv = RTE_KDRV_UNKNOWN; - } else + } else { dev->kdrv = RTE_KDRV_NONE; - + return 0; + } /* device is valid, add in list (sorted) */ if (TAILQ_EMPTY(&rte_pci_bus.device_list)) { rte_pci_add_device(dev); @@ -772,11 +773,6 @@ rte_pci_ioport_map(struct rte_pci_device *dev, int bar, ret = pci_ioport_map(dev, bar, p); #else ret = pci_uio_ioport_map(dev, bar, p); -#endif - break; - case RTE_KDRV_NONE: -#if defined(RTE_ARCH_X86) - ret = pci_ioport_map(dev, bar, p); #endif break; default: @@ -805,11 +801,6 @@ rte_pci_ioport_read(struct rte_pci_ioport *p, case RTE_KDRV_UIO_GENERIC: pci_uio_ioport_read(p, data, len, offset); break; - case RTE_KDRV_NONE: -#if defined(RTE_ARCH_X86) - pci_uio_ioport_read(p, data, len, offset); -#endif - break; default: break; } @@ -831,11 +822,6 @@ rte_pci_ioport_write(struct rte_pci_ioport *p, case RTE_KDRV_UIO_GENERIC: pci_uio_ioport_write(p, data, len, offset); break; - case RTE_KDRV_NONE: -#if defined(RTE_ARCH_X86) - pci_uio_ioport_write(p, data, len, offset); -#endif - break; default: break; } @@ -861,11 +847,6 @@ rte_pci_ioport_unmap(struct rte_pci_ioport *p) ret = 0; #else ret = pci_uio_ioport_unmap(p); -#endif - break; - case RTE_KDRV_NONE: -#if defined(RTE_ARCH_X86) - ret = 0; #endif break; default: -- 2.20.1