[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