[dpdk-dev] [PATCH] bus/pci: optimize pci device probe

Jerin Jacob jerinjacobk at gmail.com
Sun Apr 26 20:41:43 CEST 2020


On Sun, Apr 26, 2020 at 11:38 PM Thomas Monjalon <thomas at monjalon.net> wrote:
>
> 26/04/2020 19:38, jerinj at marvell.com:
> > From: Jerin Jacob <jerinj at marvell.com>
> >
> > If the PCI device is not attached to any driver then there is no
> > point in probing it. As an optimization, skip the PCI device probe if
> > the PCI device driver of type RTE_KDRV_NONE.
> >
> > Signed-off-by: Jerin Jacob <jerinj at marvell.com>
> > ---
> > Notes:
> > ------
> > - virtio drivers does special treatment based on RTE_KDRV_UNKNOWN, That is
> > the reason allowing RTE_KDRV_UNKNOWN in this patch.
> > - virio devices uses RTE_KDRV_UNKNOWN for some special meaning, IMO, if it would
> >   be better, if
> > a) Introduce the KDRV for virio
> > b) If the PCIe device of driver type NONE or UNKNOWN then not even add in pci
> > list
> > in the scan, It will improve the boot time by avoiding operation on
> > unwanted device like sorting the PCI devices, scanning it, probe it, managing
> > it etc.
>
> mlx4/mlx4 uses RTE_KDRV_UNKNOWN.

OK.

>
> > - Initial problem reported at http://patches.dpdk.org/patch/64999/ as
> > boot time printf clutter on octeontx2 devices with a lot PCI devices which are
> > of type RTE_KDRV_NONE.
>
> Add a logtype for PCI driver and adjust log level accordingly
> to your preferences.
>
> > @@ -271,6 +271,8 @@ pci_probe_all_drivers(struct rte_pci_device *dev)
> >       FOREACH_DRIVER_ON_PCIBUS(dr) {
> > +             if (dev->kdrv == RTE_KDRV_NONE)
> > +                     continue;
> >               rc = rte_pci_probe_one_driver(dr, dev);
>
> Nack

I understand mlx4/mlx5 is using RTE_KDRV_UNKNOWN, Here we are skipping
the RTE_KDRV_NONE,
What is the use case for probing the devices with RTE_KDRV_NONE?


>
>


More information about the dev mailing list