[dpdk-dev] [PATCH v3] drivers: advertise kmod dependencies in pmdinfo

Olivier Matz olivier.matz at 6wind.com
Fri Dec 16 10:22:08 CET 2016


Hi,

On Thu, 15 Dec 2016 09:22:07 -0800, Stephen Hemminger
<stephen at networkplumber.org> wrote:
> On Thu, 15 Dec 2016 11:09:12 -0500
> Neil Horman <nhorman at tuxdriver.com> wrote:
> 
> > On Thu, Dec 15, 2016 at 02:46:39PM +0100, Olivier Matz wrote:  
> > > Add a new macro RTE_PMD_REGISTER_KMOD_DEP() that allows a driver
> > > to declare the list of kernel modules required to run properly.
> > > 
> > > Today, most PCI drivers require uio/vfio.
> > > 
> > > Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
> > > Acked-by: Fiona Trahe <fiona.trahe at intel.com>
> > > ---
> > > 
> > > v2 -> v3:
> > > - fix kmods deps advertised by mellanox drivers as pointed out
> > >   by Adrien
> > > 
> > > v1 ->
> > > v2:                                                                                                
> > > - do not advertise uio_pci_generic for vf drivers
> > > - rebase on top of head: use new driver names and prefix
> > >   macro with
> > > RTE_                                                                                       
> > > 
> > > rfc -> v1:
> > > - the kmod information can be per-device using a modalias-like
> > >   pattern
> > > - change syntax to use '&' and '|' instead of ',' and ':'
> > > - remove useless prerequisites in kmod lis: no need to
> > >   specify both uio and uio_pci_generic, only the latter is
> > >   required
> > > - update kmod list in szedata2 driver
> > > - remove kmod list in qat driver: it requires more than just
> > > loading a kmod, which is described in documentation
> > > 
> > >  buildtools/pmdinfogen/pmdinfogen.c      |  1 +
> > >  buildtools/pmdinfogen/pmdinfogen.h      |  1 +
> > >  drivers/net/bnx2x/bnx2x_ethdev.c        |  2 ++
> > >  drivers/net/bnxt/bnxt_ethdev.c          |  1 +
> > >  drivers/net/cxgbe/cxgbe_ethdev.c        |  1 +
> > >  drivers/net/e1000/em_ethdev.c           |  1 +
> > >  drivers/net/e1000/igb_ethdev.c          |  2 ++
> > >  drivers/net/ena/ena_ethdev.c            |  1 +
> > >  drivers/net/enic/enic_ethdev.c          |  1 +
> > >  drivers/net/fm10k/fm10k_ethdev.c        |  1 +
> > >  drivers/net/i40e/i40e_ethdev.c          |  1 +
> > >  drivers/net/i40e/i40e_ethdev_vf.c       |  1 +
> > >  drivers/net/ixgbe/ixgbe_ethdev.c        |  2 ++
> > >  drivers/net/mlx4/mlx4.c                 |  2 ++
> > >  drivers/net/mlx5/mlx5.c                 |  1 +
> > >  drivers/net/nfp/nfp_net.c               |  1 +
> > >  drivers/net/qede/qede_ethdev.c          |  2 ++
> > >  drivers/net/szedata2/rte_eth_szedata2.c |  2 ++
> > >  drivers/net/thunderx/nicvf_ethdev.c     |  1 +
> > >  drivers/net/virtio/virtio_ethdev.c      |  1 +
> > >  drivers/net/vmxnet3/vmxnet3_ethdev.c    |  1 +
> > >  lib/librte_eal/common/include/rte_dev.h | 25
> > > +++++++++++++++++++++++++ tools/dpdk-pmdinfo.py
> > > |  5 ++++- 23 files changed, 56 insertions(+), 1 deletion(-)
> > >     
> > Its odd that all devices, regardless of vendor should depend on the
> > igb_uio module.  It seems to me that depending on uio_pci_generic
> > or vfio is sufficient.

igb_uio is the historical uio module of dpdk. Although it is called
igb_uio, it is not specific to Intel drivers.

Most drivers declare "igb_uio | uio_pci_generic | vfio", which means
that any of the 3 kernel modules can be used.

I think there are some cases where people will prefer using igb_uio,
for instance to use a vf pmd in a vm where there is no iommu,
and where the kernel vfio module does not support the no-iommu mode.


> 
> Yes it seems just a special case extension for Mellanox drivers.

Kmod deps are different whether it's a vf driver or not.
Mellanox drivers are not the only drivers that do not require uio,
there is also szedata2.

Is it an argument for not including this patch?


Regards,
Olivier


More information about the dev mailing list