[dpdk-dev] [PATCH 05/11] ethdev: add probing finish function
Thomas Monjalon
thomas at monjalon.net
Thu May 10 23:49:11 CEST 2018
10/05/2018 22:18, Stephen Hemminger:
> On Wed, 9 May 2018 11:43:31 +0200
> Thomas Monjalon <thomas at monjalon.net> wrote:
>
> > A new hook function is added and called inside the PMDs at the end
> > of the device probing:
> > - in primary process, after allocating, init and config
> > - in secondary process, after attaching and local init
> >
> > This new function is almost empty for now.
> > It will be used later to add some post-initialization processing.
> >
> > For the PMDs calling the helpers rte_eth_dev_create() or
> > rte_eth_dev_pci_generic_probe(), the hook rte_eth_dev_probing_finish()
> > is called from here, and not in the PMD itself.
> >
> > Note that the helper rte_eth_dev_create() could be used more,
> > especially for vdevs, avoiding some code duplication in PMDs.
> >
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> > ---
> > drivers/net/af_packet/rte_eth_af_packet.c | 2 ++
> > drivers/net/ark/ark_ethdev.c | 2 ++
> > drivers/net/bonding/rte_eth_bond_pmd.c | 2 ++
> > drivers/net/cxgbe/cxgbe_ethdev.c | 1 +
> > drivers/net/cxgbe/cxgbe_main.c | 5 +++++
> > drivers/net/cxgbe/cxgbevf_ethdev.c | 1 +
> > drivers/net/cxgbe/cxgbevf_main.c | 5 +++++
> > drivers/net/dpaa/dpaa_ethdev.c | 5 ++++-
> > drivers/net/dpaa2/dpaa2_ethdev.c | 4 +++-
> > drivers/net/failsafe/failsafe.c | 2 ++
> > drivers/net/kni/rte_eth_kni.c | 2 ++
> > drivers/net/mlx4/mlx4.c | 1 +
> > drivers/net/mlx5/mlx5.c | 2 ++
> > drivers/net/mvpp2/mrvl_ethdev.c | 1 +
> > drivers/net/nfp/nfp_net.c | 2 ++
> > drivers/net/null/rte_eth_null.c | 2 ++
> > drivers/net/octeontx/octeontx_ethdev.c | 3 +++
> > drivers/net/pcap/rte_eth_pcap.c | 2 ++
> > drivers/net/ring/rte_eth_ring.c | 1 +
> > drivers/net/softnic/rte_eth_softnic.c | 3 +++
> > drivers/net/szedata2/rte_eth_szedata2.c | 2 ++
> > drivers/net/tap/rte_eth_tap.c | 2 ++
> > drivers/net/vhost/rte_eth_vhost.c | 2 ++
> > drivers/net/virtio/virtio_user_ethdev.c | 3 +++
> > lib/librte_ethdev/rte_ethdev.c | 9 +++++++++
> > lib/librte_ethdev/rte_ethdev_driver.h | 10 ++++++++++
> > lib/librte_ethdev/rte_ethdev_pci.h | 2 ++
> > lib/librte_ethdev/rte_ethdev_version.map | 1 +
> > test/test/virtual_pmd.c | 2 ++
> > 29 files changed, 79 insertions(+), 2 deletions(-)
>
> Rather than changing so many drivers would it be possible to put the finish in bus layer?
> For virtual devices could be handle by vdev_probe_all_drivers.
No, the bus layer does not know the ethdev ports created.
A lot of drivers are not changed because they use a high level helper
rte_eth_dev_pci_generic_probe or rte_eth_dev_create.
For others, it is my comment in the commit log:
Note that the helper rte_eth_dev_create() could be used more,
especially for vdevs, avoiding some code duplication in PMDs.
More information about the dev
mailing list