[v2] bus/pci: optimize bus scan
Checks
Commit Message
From: Jerin Jacob <jerinj@marvell.com>
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>
---
v2:
- Updated "Removed Items" section in release notes(Thomas)
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(-)
Comments
24/06/2020 13:46, jerinj@marvell.com:
> From: Jerin Jacob <jerinj@marvell.com>
>
> 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>
Applied, thanks
@@ -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/
@@ -81,6 +81,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
-----------
@@ -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: