bus/pci: optimize bus scan
authorJerin Jacob <jerinj@marvell.com>
Wed, 24 Jun 2020 11:46:17 +0000 (17:16 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 24 Jun 2020 21:49:15 +0000 (23:49 +0200)
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 <jerinj@marvell.com>
doc/guides/rel_notes/deprecation.rst
doc/guides/rel_notes/release_20_08.rst
drivers/bus/pci/linux/pci.c

index 0bee924..d1034f6 100644 (file)
@@ -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/
index 7629b1f..a670155 100644 (file)
@@ -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
 -----------
index da2f55b..a2198ab 100644 (file)
@@ -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: