[dpdk-dev] [PATCH 0/9] prepare for rte_device / rte_driver

David Marchand david.marchand at 6wind.com
Fri Jan 29 15:08:27 CET 2016


Following discussions with Jan [1] and some cleanup I started on pci code,
here is a patchset that reworks pdev drivers registration and hotplug api.

The structures changes mentioned in [1] are still to be done, but at least,
I think we are one step closer to it.

Before this patchset, rte_driver .init semantics differed whether it
concerned a pdev or a vdev driver:
- for vdev, it actually meant that a devargs is given to the driver so
  that it creates ethdev / crypto objects, so it was a probing action
- for pdev, it only registered the driver triggering no ethdev / crypto
  objects

Patches 1 to 3 convert all existing pdev drivers into pci drivers and move
their registration in constructors.

Patch 4 might be of interest to Chelsio guys, following a regression they
reported [2].

Patches 5 and 6 align pci drivers and vdev drivers init.

Patches 7 to 9 move hotplug where it belongs.
I did not test patch 8 on FreeBSD (did not even compile it, for now).


[1] http://dpdk.org/ml/archives/dev/2016-January/031390.html
[2] http://dpdk.org/ml/archives/dev/2015-November/028289.html

Regards, 
-- 
David Marchand

David Marchand (9):
  pci: no need for dynamic tailq init
  pci: register all pdev as pci drivers
  drivers: no more pdev drivers
  eal/linux: move back interrupt thread init before setting affinity
  eal: get rid of pmd type
  eal: initialize vdevs right next to pci devices
  pci: add a helper for device name
  pci: add a helper to refresh a device
  eal: relocate hotplug code from ethdev

 drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c      |   2 +
 drivers/crypto/qat/rte_qat_cryptodev.c          |  18 +-
 drivers/net/af_packet/rte_eth_af_packet.c       |   2 +
 drivers/net/bnx2x/bnx2x_ethdev.c                |  34 +--
 drivers/net/bonding/rte_eth_bond_pmd.c          |   2 +
 drivers/net/cxgbe/cxgbe_ethdev.c                |  24 +-
 drivers/net/e1000/em_ethdev.c                   |  17 +-
 drivers/net/e1000/igb_ethdev.c                  |  40 +---
 drivers/net/enic/enic_ethdev.c                  |  23 +-
 drivers/net/fm10k/fm10k_ethdev.c                |  23 +-
 drivers/net/i40e/i40e_ethdev.c                  |  24 +-
 drivers/net/i40e/i40e_ethdev_vf.c               |  25 +-
 drivers/net/ixgbe/ixgbe_ethdev.c                |  46 +---
 drivers/net/mlx4/mlx4.c                         |  19 +-
 drivers/net/mlx5/mlx5.c                         |  19 +-
 drivers/net/mpipe/mpipe_tilegx.c                |   4 +
 drivers/net/nfp/nfp_net.c                       |  21 +-
 drivers/net/null/rte_eth_null.c                 |   2 +
 drivers/net/pcap/rte_eth_pcap.c                 |   2 +
 drivers/net/ring/rte_eth_ring.c                 |   2 +
 drivers/net/szedata2/rte_eth_szedata2.c         |   2 +
 drivers/net/virtio/virtio_ethdev.c              |  26 +--
 drivers/net/vmxnet3/vmxnet3_ethdev.c            |  23 +-
 drivers/net/xenvirt/rte_eth_xenvirt.c           |   2 +
 lib/librte_cryptodev/rte_cryptodev.c            |  32 ++-
 lib/librte_cryptodev/rte_cryptodev.h            |   2 +
 lib/librte_cryptodev/rte_cryptodev_pmd.h        |  18 ++
 lib/librte_cryptodev/rte_cryptodev_version.map  |  10 +-
 lib/librte_eal/bsdapp/eal/eal.c                 |   7 +
 lib/librte_eal/bsdapp/eal/eal_pci.c             |  52 ++++-
 lib/librte_eal/bsdapp/eal/rte_eal_version.map   |   8 +
 lib/librte_eal/common/eal_common_dev.c          |  50 +++-
 lib/librte_eal/common/eal_common_pci.c          |  17 +-
 lib/librte_eal/common/eal_private.h             |  13 ++
 lib/librte_eal/common/include/rte_dev.h         |  31 ++-
 lib/librte_eal/common/include/rte_pci.h         |  28 +++
 lib/librte_eal/linuxapp/eal/eal.c               |  13 +-
 lib/librte_eal/linuxapp/eal/eal_pci.c           |  16 +-
 lib/librte_eal/linuxapp/eal/rte_eal_version.map |   8 +
 lib/librte_ether/rte_ethdev.c                   | 296 ++++--------------------
 lib/librte_ether/rte_ethdev.h                   |  15 ++
 lib/librte_ether/rte_ether_version.map          |   8 +
 42 files changed, 465 insertions(+), 561 deletions(-)

-- 
1.9.1



More information about the dev mailing list