Hi David, > -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of David Marchand > Sent: Wednesday, April 20, 2016 12:44 PM > To: dev at dpdk.org > Cc: thomas.monjalon at 6wind.com; viktorin at rehivetech.com > Subject: [dpdk-dev] [PATCH v2 00/17] prepare for rte_device / rte_driver > > 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 > > From my pov, eal hotplug api introduced in this patchset still needs more > work so that it does not need to know about devargs. So a new devargs api is > needed. > > Changes since v1: > - rebased on HEAD, new drivers should be okay > - patches have been split into smaller pieces > - RTE_INIT macro has been added, but in the end, I am not sure it is useful > - device type has been removed from ethdev, as it was used only by hotplug > - getting rid of pmd type in eal patch (patch 5 of initial series) has been > dropped for now, we can do this once vdev drivers have been converted > > [1] http://dpdk.org/ml/archives/dev/2016-January/031390.html > > Regards, > -- > David Marchand > > David Marchand (17): > pci: no need for dynamic tailq init > crypto: no need for a crypto pmd type > drivers: align pci driver definitions > eal: remove duplicate function declaration > eal: introduce init macros > crypto: export init/uninit common wrappers for pci drivers > ethdev: export init/uninit common wrappers for pci drivers > drivers: convert all pdev drivers as pci drivers > crypto: get rid of crypto driver register callback > ethdev: get rid of eth driver register callback > eal/linux: move back interrupt thread init before setting affinity > pci: add a helper for device name > pci: add a helper to update a device > ethdev: do not scan all pci devices on attach > eal: add hotplug operations for pci and vdev > ethdev: convert to eal hotplug > ethdev: get rid of device type > > app/test/virtual_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 | 35 +-- > drivers/net/bonding/rte_eth_bond_api.c | 2 +- > drivers/net/cxgbe/cxgbe_ethdev.c | 24 +- > drivers/net/cxgbe/cxgbe_main.c | 2 +- > drivers/net/e1000/em_ethdev.c | 16 +- > drivers/net/e1000/igb_ethdev.c | 40 +-- > drivers/net/ena/ena_ethdev.c | 20 +- > drivers/net/enic/enic_ethdev.c | 23 +- > drivers/net/fm10k/fm10k_ethdev.c | 23 +- > drivers/net/i40e/i40e_ethdev.c | 26 +- > drivers/net/i40e/i40e_ethdev_vf.c | 25 +- > drivers/net/ixgbe/ixgbe_ethdev.c | 47 +--- > drivers/net/mlx4/mlx4.c | 22 +- > drivers/net/mlx5/mlx5.c | 21 +- > drivers/net/mpipe/mpipe_tilegx.c | 2 +- > drivers/net/nfp/nfp_net.c | 23 +- > 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 | 25 +- > drivers/net/vhost/rte_eth_vhost.c | 2 +- > drivers/net/virtio/virtio_ethdev.c | 26 +- > drivers/net/vmxnet3/vmxnet3_ethdev.c | 23 +- > drivers/net/xenvirt/rte_eth_xenvirt.c | 2 +- > examples/ip_pipeline/init.c | 22 -- > lib/librte_cryptodev/rte_cryptodev.c | 67 +---- > lib/librte_cryptodev/rte_cryptodev.h | 2 - > lib/librte_cryptodev/rte_cryptodev_pmd.h | 45 +--- > lib/librte_cryptodev/rte_cryptodev_version.map | 9 +- > 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 | 39 +++ > lib/librte_eal/common/eal_common_pci.c | 17 +- > lib/librte_eal/common/eal_private.h | 20 +- > lib/librte_eal/common/include/rte_dev.h | 29 ++- > lib/librte_eal/common/include/rte_eal.h | 3 + > lib/librte_eal/common/include/rte_pci.h | 32 +++ > lib/librte_eal/common/include/rte_tailq.h | 4 +- > lib/librte_eal/linuxapp/eal/eal.c | 7 +- > 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 | 316 > ++++-------------------- > lib/librte_ether/rte_ethdev.h | 40 ++- > lib/librte_ether/rte_ether_version.map | 9 +- > 47 files changed, 392 insertions(+), 810 deletions(-) > > -- > 1.9.1
Patches 3,8,16 and 17 no longer apply to the latest master branch. A rebase is needed. Regards, Bernard.