[dpdk-dev] [PATCH v2 00/42] Remove struct eth_driver
Stephen Hemminger
stephen at networkplumber.org
Wed Apr 12 18:25:18 CEST 2017
On Tue, 11 Apr 2017 17:44:07 +0200
Gaetan Rivet <gaetan.rivet at 6wind.com> wrote:
> I rebased the following work of Jan:
>
> This series is removing the PCI specific struct eth_driver from rte_ether. The
> PCI drivers are changed to use the newly introduced header-only helpers
> instead. Although the virtual drivers did not make use of the ethdev's driver
> field they are converted to use the VDEV specific allocation helpers. The
> motivation for this change is to properly embed a reference to the generic
> rte_device in the ethdev.
>
> The series is based on:
>
> * http://dpdk.org/dev/patchwork/patch/20416/
> * http://dpdk.org/dev/patchwork/patch/20417/
> * The "Rework vdev probing to use rte_bus infrastructure" series
> * http://dpdk.org/dev/patchwork/patch/21058/
>
> Changes in v2:
> * Removed the patch "net/vmxnet3: use library function for DMA zone reserve"
> It is essentially duplicating the following commit:
> 04df93d1edac ("net/vmxnet3: fix queue size changes")
> * Fixed header includes for mlx4 and mlx5 PMD
> * Followed the changes of the series for new PMDs (AVP, liquidio)
> * Made KNI use the new API
> * Made PCAP use the new API
> * Fixed undefined behavior on vdev driver arg parsing
> * Fixed virtual_pmd for unit test
>
> Gaetan Rivet (5):
> net/kni: use ethdev allocation helper for virtual devices
> net/pcap: use ethdev allocation helper for virtual devices
> net/avp: Don't use eth_driver
> net/liquidio: Don't use eth_driver
> test: remove unused ethdev driver
>
> Jan Blunck (37):
> eal: add name field to generic device
> eal: parse "driver" device argument before probing drivers
> net/nfp: use library function for DMA zone reserve
> ether: add allocation helper for virtual drivers
> net/tap: use ethdev allocation helper for virtual devices
> net/vhost: use ethdev allocation helper for virtual devices
> net/virtio: use ethdev allocation helper for virtual devices
> net/af_packet: use ethdev allocation helper for virtual devices
> app/test: don't short-circuit null device creation
> net/null: internalize eth_dev_null_create()
> net/null: use ethdev allocation helper for virtual devices
> net/bonding: make bonding API call through EAL on create/free
> net/bonding: use ethdev allocation helper for virtual devices
> ethdev: add PCI driver helpers
> net/virtio: Don't use eth_driver
> net/bnx2x: Don't use eth_driver
> net/bnxt: Don't use eth_driver
> net/cxgbe: Don't use eth_driver
> net/em: Don't use eth_driver
> net/igb: Don't use eth_driver
> net/ena: Don't use eth_driver
> net/enic: Don't use eth_driver
> net/fm10k: Don't use eth_driver
> net/i40e: Don't use eth_driver
> net/i40evf: Don't use eth_driver
> net/ixgbe: Don't use eth_driver
> net/mlx: Don't reference eth_driver
> net/nfp: Don't use eth_driver
> net/qede: Don't use eth_driver
> net/sfc: Don't use eth_driver
> net/szedata2: Don't use eth_driver
> net/thunderx: Don't use eth_driver
> net/vmxnet3: Don't use eth_driver
> ethdev: remove unused ethdev PCI probe/remove
> ethdev: remove unused ethdev driver
> ethdev: remove PCI specific helper from generic ethdev header
> ethdev: don't include PCI header
>
> drivers/net/af_packet/rte_eth_af_packet.c | 42 +++----
> drivers/net/avp/avp_ethdev.c | 43 +++++--
> drivers/net/bnx2x/bnx2x_ethdev.c | 64 ++++++----
> drivers/net/bnx2x/bnx2x_rxtx.c | 2 +-
> drivers/net/bnxt/bnxt_ethdev.c | 36 ++++--
> drivers/net/bonding/rte_eth_bond_api.c | 171 ++++----------------------
> drivers/net/bonding/rte_eth_bond_args.c | 2 +-
> drivers/net/bonding/rte_eth_bond_pmd.c | 160 +++++++++++++++++++++++--
> drivers/net/cxgbe/cxgbe_ethdev.c | 29 +++--
> drivers/net/cxgbe/cxgbe_main.c | 2 +-
> drivers/net/cxgbe/sge.c | 6 +-
> drivers/net/e1000/em_ethdev.c | 30 +++--
> drivers/net/e1000/igb_ethdev.c | 60 ++++++----
> drivers/net/ena/ena_ethdev.c | 29 +++--
> drivers/net/enic/enic_ethdev.c | 29 +++--
> drivers/net/fm10k/fm10k_ethdev.c | 30 +++--
> drivers/net/i40e/i40e_ethdev.c | 36 +++---
> drivers/net/i40e/i40e_ethdev_vf.c | 31 +++--
> drivers/net/i40e/i40e_fdir.c | 2 +-
> drivers/net/ixgbe/ixgbe_ethdev.c | 66 +++++++----
> drivers/net/kni/rte_eth_kni.c | 39 +++---
> drivers/net/liquidio/lio_ethdev.c | 44 +++++--
> drivers/net/mlx4/mlx4.c | 24 ++--
> drivers/net/mlx5/mlx5.c | 24 ++--
> drivers/net/nfp/nfp_net.c | 59 ++++-----
> drivers/net/null/Makefile | 7 +-
> drivers/net/null/rte_eth_null.c | 55 +++------
> drivers/net/null/rte_eth_null.h | 40 -------
> drivers/net/null/rte_pmd_null_version.map | 7 --
> drivers/net/pcap/rte_eth_pcap.c | 62 +++++-----
> drivers/net/qede/qede_ethdev.c | 60 ++++++----
> drivers/net/qede/qede_ethdev.h | 1 +
> drivers/net/ring/rte_eth_ring.c | 1 -
> drivers/net/sfc/sfc_ethdev.c | 34 ++++--
> drivers/net/szedata2/rte_eth_szedata2.c | 29 +++--
> drivers/net/tap/rte_eth_tap.c | 38 ++----
> drivers/net/thunderx/nicvf_ethdev.c | 29 +++--
> drivers/net/vhost/rte_eth_vhost.c | 54 ++++-----
> drivers/net/virtio/virtio_ethdev.c | 34 ++++--
> drivers/net/virtio/virtio_user_ethdev.c | 20 +---
> drivers/net/vmxnet3/vmxnet3_ethdev.c | 30 +++--
> lib/librte_eal/bsdapp/eal/eal_pci.c | 3 +
> lib/librte_eal/common/eal_common_dev.c | 3 +
> lib/librte_eal/common/eal_common_vdev.c | 53 ++++++++-
> lib/librte_eal/common/include/rte_dev.h | 1 +
> lib/librte_eal/common/include/rte_pci.h | 1 +
> lib/librte_eal/linuxapp/eal/eal_pci.c | 3 +
> lib/librte_ether/Makefile | 2 +
> lib/librte_ether/rte_ethdev.c | 117 ------------------
> lib/librte_ether/rte_ethdev.h | 105 +---------------
> lib/librte_ether/rte_ethdev_pci.h | 191 ++++++++++++++++++++++++++++++
> lib/librte_ether/rte_ethdev_vdev.h | 84 +++++++++++++
> lib/librte_ether/rte_ether_version.map | 11 +-
> test/test/test_link_bonding_rssconf.c | 4 +-
> test/test/virtual_pmd.c | 12 +-
> 55 files changed, 1185 insertions(+), 966 deletions(-)
> delete mode 100644 drivers/net/null/rte_eth_null.h
> create mode 100644 lib/librte_ether/rte_ethdev_pci.h
> create mode 100644 lib/librte_ether/rte_ethdev_vdev.h
>
Looks good.
Acked-by: Stephen Hemminger <stephen at networkplumber.org>
More information about the dev
mailing list