[dpdk-dev] [PATCH 00/38] Remove struct eth_driver

Jan Blunck jblunck at infradead.org
Mon Mar 6 10:59:52 CET 2017


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/
* my "Rework vdev probing to use rte_bus infrastructure" series
* http://dpdk.org/dev/patchwork/patch/21058/

If requested I can push a tree with all dependent patches.

Jan Blunck (38):
  eal: add name field to generic device
  eal: parse "driver" device argument before probing drivers
  net/nfp: use library function for DMA zone reserve
  net/vmxnet3: 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/bnx2x/bnx2x_ethdev.c          |  64 ++++++----
 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/mlx4/mlx4.c                   |  17 ++-
 drivers/net/mlx5/mlx5.c                   |  19 ++-
 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/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             |  37 ++----
 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 +++--
 drivers/net/vmxnet3/vmxnet3_rxtx.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   |  50 +++++++-
 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    |   4 -
 test/test/test_link_bonding_rssconf.c     |   4 +-
 50 files changed, 1065 insertions(+), 891 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.7.4



More information about the dev mailing list