[dpdk-dev] [PATCH v4 00/17] prepare for rte_device / rte_driver
Self NACK. Rebase over master before posting series broke compilation. Apologies. On Tuesday 21 June 2016 05:32 PM, Shreyansh Jain wrote: > * Original patch series is from David Marchand [1], [2]. > * Cover letter text has been modified to make it author agnostic > > David created the original patchset based on the discussions on list [3]. > Being a large piece of work, this patchset introduces first level of changes > for generalizing the driver-device relationship for supporting hotplug. > > Pending work, as per discussions in thread [3]: > - Heirarchical relationship between rte_driver/device, pci_*, crypto_* > - Cleaner device init/deinit methods (probably from rte_driver onwards) > - Moving generic flags/fields from pci_* structure to rte_* structure > - Removing dependency on devargs for pdev/vdev distinction > - Device/Driver lists: discussion and decision on separate or unified lists > > Changes since v3: > - rebase over HEAD (913154e) > - Update arguments to RTE_EAL_PCI_REGISTER macro as per Jan's suggestion > - modify qede driver to use RTE_EAL_PCI_REGISTER > - Argument check in hotplug functions > > Changes since v2: > - rebase over HEAD (d76c193) > - Move SYSFS_PCI_DRIVERS macro to rte_pci.h to avoid compilation issue > > 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/032387.html > [2] http://dpdk.org/ml/archives/dev/2016-April/037686.html > [3] http://dpdk.org/ml/archives/dev/2016-January/031390.html > > 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/qede/qede_ethdev.c | 40 + > 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 | 2 + > lib/librte_eal/common/eal_common_dev.c | 47 + > lib/librte_eal/common/eal_common_pci.c | 19 +- > lib/librte_eal/common/eal_priva
[dpdk-dev] [PATCH v4 00/17] prepare for rte_device / rte_driver
* Original patch series is from David Marchand [1], [2]. * Cover letter text has been modified to make it author agnostic David created the original patchset based on the discussions on list [3]. Being a large piece of work, this patchset introduces first level of changes for generalizing the driver-device relationship for supporting hotplug. Pending work, as per discussions in thread [3]: - Heirarchical relationship between rte_driver/device, pci_*, crypto_* - Cleaner device init/deinit methods (probably from rte_driver onwards) - Moving generic flags/fields from pci_* structure to rte_* structure - Removing dependency on devargs for pdev/vdev distinction - Device/Driver lists: discussion and decision on separate or unified lists Changes since v3: - rebase over HEAD (913154e) - Update arguments to RTE_EAL_PCI_REGISTER macro as per Jan's suggestion - modify qede driver to use RTE_EAL_PCI_REGISTER - Argument check in hotplug functions Changes since v2: - rebase over HEAD (d76c193) - Move SYSFS_PCI_DRIVERS macro to rte_pci.h to avoid compilation issue 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/032387.html [2] http://dpdk.org/ml/archives/dev/2016-April/037686.html [3] http://dpdk.org/ml/archives/dev/2016-January/031390.html 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/qede/qede_ethdev.c | 40 + 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 | 2 + lib/librte_eal/common/eal_common_dev.c | 47 + lib/librte_eal/common/eal_common_pci.c | 19 +- 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 | 36 lib/librte_eal/common/include/rte_tailq.h | 4 +- lib/librte_eal/linuxapp/eal/eal.c | 7 +- lib/l