[dpdk-dev] [PATCH v2 00/42] Remove struct eth_driver

Gaetan Rivet gaetan.rivet at 6wind.com
Tue Apr 11 17:44:07 CEST 2017


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

-- 
2.1.4



More information about the dev mailing list