[dpdk-dev] [PATCH v4 00/17] prepare for rte_device / rte_driver

2016-06-21 Thread Shreyansh jain
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

2016-06-21 Thread Shreyansh Jain
* 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