[dpdk-dev] [PATCH v5 00/20] Decouple ethdev from PCI device

Jan Blunck jblunck at infradead.org
Fri Dec 23 16:57:51 CET 2016


This repost addresses the review comments of Thomas Monjalon to completely
remove the ethdev helper to further decrease the coupling of the ethdev and
the eal layers. This required me to squash together all patches using the
rte_eth_dev_to_pci() helper into "Decouple from PCI device" patch. As
discussed privately I'll keep the PCI information in rte_eth_dev_info
untouched.

Changes between v5 and v4:
 - Removed ethdev helper rte_eth_dev_to_pci()

Changes between v4 and v3:
 - broken out refactorings of drivers similar to Stephens example
 - use inline function instead of macro
 - fix build issues with bnx2x and mlx4/5

Changes between v3 and v2:
 - converted PCI device users I've missed in previous version

Jan Blunck (14):
  eal: define container_of macro
  eal: Allow passing const rte_intr_handle
  virtio: Don't fill dev_info->driver_name
  virtio: Add vtpci_intr_handle() helper to get rte_intr_handle
  virtio: Don't depend on struct rte_eth_dev's pci_dev
  bnx2x: localize mapping from eth_dev to pci
  fm10k: localize mapping from eth_dev to pci
  qede: localize mapping of eth_dev to pci
  szedata2: localize handling of pci resources
  nfp: localize rte_pci_device handling
  vmxnet3: use eth_dev->data->drv_name instead of pci_drv name
  ethdev: Decouple interrupt handling from PCI device
  ethdev: Move dev_info filling of PCI information into drivers
  ethdev: Decouple from PCI device

Stephen Hemminger (6):
  rte_device: make driver pointer const
  pmd: remove useless reset of dev_info->dev_pci
  e1000: localize mapping from eth_dev to pci
  ixgbe: localize mapping from eth_dev to pci_device
  i40e: localize mapping of eth_dev to pci
  broadcom: localize mapping from eth_dev to pci

 app/test/virtual_pmd.c                         |   5 +-
 drivers/net/af_packet/rte_eth_af_packet.c      |   1 -
 drivers/net/bnx2x/bnx2x_ethdev.c               |  15 +--
 drivers/net/bnxt/bnxt_ethdev.c                 |  24 +++--
 drivers/net/bnxt/bnxt_ring.c                   |  16 ++--
 drivers/net/bonding/rte_eth_bond_args.c        |  12 ++-
 drivers/net/bonding/rte_eth_bond_pmd.c         |   1 -
 drivers/net/cxgbe/cxgbe_ethdev.c               |   4 +-
 drivers/net/cxgbe/cxgbe_main.c                 |   4 +-
 drivers/net/e1000/e1000_ethdev.h               |   2 +
 drivers/net/e1000/em_ethdev.c                  |  51 ++++++-----
 drivers/net/e1000/igb_ethdev.c                 | 101 +++++++++++---------
 drivers/net/e1000/igb_pf.c                     |   4 +-
 drivers/net/ena/ena_ethdev.c                   |   4 +-
 drivers/net/enic/enic_ethdev.c                 |   3 +-
 drivers/net/fm10k/fm10k_ethdev.c               |  84 +++++++++--------
 drivers/net/i40e/i40e_ethdev.c                 |  78 ++++++++++------
 drivers/net/i40e/i40e_ethdev.h                 |   3 +
 drivers/net/i40e/i40e_ethdev_vf.c              |  59 +++++++-----
 drivers/net/ixgbe/ixgbe_ethdev.c               | 122 ++++++++++++++-----------
 drivers/net/ixgbe/ixgbe_ethdev.h               |   3 +
 drivers/net/ixgbe/ixgbe_pf.c                   |   4 +-
 drivers/net/mlx4/mlx4.c                        |   4 +-
 drivers/net/mlx5/mlx5.c                        |   2 +-
 drivers/net/mlx5/mlx5_ethdev.c                 |   2 +
 drivers/net/nfp/nfp_net.c                      |  19 ++--
 drivers/net/null/rte_eth_null.c                |   1 -
 drivers/net/pcap/rte_eth_pcap.c                |   1 -
 drivers/net/qede/qede_ethdev.c                 |  19 ++--
 drivers/net/ring/rte_eth_ring.c                |   1 -
 drivers/net/szedata2/rte_eth_szedata2.c        |  73 +++++++++------
 drivers/net/szedata2/rte_eth_szedata2.h        |  58 +++++-------
 drivers/net/thunderx/nicvf_ethdev.c            |   7 +-
 drivers/net/virtio/virtio_ethdev.c             |  44 ++++-----
 drivers/net/virtio/virtio_pci.h                |   6 ++
 drivers/net/virtio/virtio_user_ethdev.c        |   1 -
 drivers/net/vmxnet3/vmxnet3_ethdev.c           |   8 +-
 drivers/net/xenvirt/rte_eth_xenvirt.c          |   1 -
 lib/librte_eal/bsdapp/eal/eal_interrupts.c     |  24 +++--
 lib/librte_eal/common/include/rte_common.h     |  20 ++++
 lib/librte_eal/common/include/rte_dev.h        |   2 +-
 lib/librte_eal/common/include/rte_interrupts.h |   8 +-
 lib/librte_eal/common/include/rte_pci.h        |   6 ++
 lib/librte_eal/linuxapp/eal/eal_interrupts.c   |  62 +++++++++----
 lib/librte_ether/rte_ethdev.c                  |  25 +++--
 lib/librte_ether/rte_ethdev.h                  |   3 +-
 46 files changed, 594 insertions(+), 403 deletions(-)

-- 
2.7.4



More information about the dev mailing list