[dpdk-dev] [PATCH v1 00/15] rte_driver/device infrastructure
Jan Viktorin
viktorin at rehivetech.com
Fri Jul 8 21:09:30 CEST 2016
Hello,
based on the discussions with Shreyansh, I propose a patchset with
the important EAL changes. It is incomplete and I suppose to extend
and change certain things in the foreseeable future.
Important notes:
* pmd_type is removed
* introduced rte_vdev_driver inheriting rte_driver
* PMD_REGISTER_DRIVER is replaced by RTE_EAL_VDRV_REGISTER
* rte_driver/device integrated into rte_pci_driver/device
* all drivers and devices are in 2 lists - general and bus-specific
Shreyansh, I hope I do not duplicate your work. I tried to avoid touching
pmd_type but it quite complicated... There is also an initial generalization
of rte_pci_resource. More such generalizations are to be done.
The init/uninit functions cannot be generalized easily, I think. Both PCI
and VDEV have different requirements.
No idea about hotplug...
The patchset is based on (all rebased on top of 34d279):
[PATCH v5 00/17] Prepare for rte_device / rte_driver
Thanks anybody for some quick review and notes.
Regards
Jan
--
Jan Viktorin (15):
eal: extract vdev infra
eal: no need to test for PMD_VDEV anymore
eal: do not call init for PMD_PDEV drivers
drivers: convert PMD_VDEV drivers to use rte_vdev_driver
eal: move init/uninit to rte_vdev_driver
eal: remove PMD_REGISTER_DRIVER
eal: get rid of pmd_type
eal: define macro container_of
eal: rte_pci.h includes rte_dev.h
eal: rename and move rte_pci_resource
eal/pci: inherit rte_driver by rte_pci_driver
eal: call rte_eal_driver_register
eal: introduce rte_device
eal/pci: inherit rte_device by rte_pci_device
eal/pci: insert rte_device on scan
app/test/test_pci.c | 10 ++-
app/test/virtual_pmd.c | 6 +-
drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 13 ++--
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 13 ++--
drivers/crypto/kasumi/rte_kasumi_pmd.c | 13 ++--
drivers/crypto/null/null_crypto_pmd.c | 13 ++--
drivers/crypto/qat/rte_qat_cryptodev.c | 4 +-
drivers/crypto/snow3g/rte_snow3g_pmd.c | 13 ++--
drivers/net/af_packet/rte_eth_af_packet.c | 11 ++--
drivers/net/bnx2x/bnx2x_ethdev.c | 8 ++-
drivers/net/bonding/rte_eth_bond_pmd.c | 11 ++--
drivers/net/cxgbe/cxgbe_ethdev.c | 4 +-
drivers/net/cxgbe/sge.c | 6 +-
drivers/net/e1000/em_ethdev.c | 4 +-
drivers/net/e1000/igb_ethdev.c | 8 ++-
drivers/net/ena/ena_ethdev.c | 4 +-
drivers/net/enic/enic_ethdev.c | 4 +-
drivers/net/fm10k/fm10k_ethdev.c | 10 +--
drivers/net/i40e/i40e_ethdev.c | 4 +-
drivers/net/i40e/i40e_ethdev_vf.c | 4 +-
drivers/net/i40e/i40e_fdir.c | 2 +-
drivers/net/ixgbe/ixgbe_ethdev.c | 8 ++-
drivers/net/mlx4/mlx4.c | 4 +-
drivers/net/mlx5/mlx5.c | 4 +-
drivers/net/mpipe/mpipe_tilegx.c | 20 +++---
drivers/net/nfp/nfp_net.c | 4 +-
drivers/net/null/rte_eth_null.c | 11 ++--
drivers/net/pcap/rte_eth_pcap.c | 11 ++--
drivers/net/qede/qede_ethdev.c | 4 ++
drivers/net/ring/rte_eth_ring.c | 11 ++--
drivers/net/szedata2/rte_eth_szedata2.c | 8 ++-
drivers/net/vhost/rte_eth_vhost.c | 11 ++--
drivers/net/virtio/virtio_ethdev.c | 6 +-
drivers/net/virtio/virtio_pci.c | 2 +-
drivers/net/vmxnet3/vmxnet3_ethdev.c | 7 +-
drivers/net/vmxnet3/vmxnet3_rxtx.c | 2 +-
drivers/net/xenvirt/rte_eth_xenvirt.c | 11 ++--
lib/librte_cryptodev/rte_cryptodev.c | 6 +-
lib/librte_eal/bsdapp/eal/Makefile | 1 +
lib/librte_eal/common/Makefile | 2 +-
lib/librte_eal/common/eal_common_dev.c | 67 +++----------------
lib/librte_eal/common/eal_common_pci.c | 20 +++---
lib/librte_eal/common/eal_common_vdev.c | 100 +++++++++++++++++++++++++++++
lib/librte_eal/common/include/rte_common.h | 16 +++++
lib/librte_eal/common/include/rte_dev.h | 54 +++++++++-------
lib/librte_eal/common/include/rte_pci.h | 20 ++----
lib/librte_eal/common/include/rte_vdev.h | 96 +++++++++++++++++++++++++++
lib/librte_eal/linuxapp/eal/Makefile | 1 +
lib/librte_eal/linuxapp/eal/eal_ivshmem.c | 2 +-
lib/librte_eal/linuxapp/eal/eal_pci.c | 7 +-
lib/librte_ether/rte_ethdev.c | 16 +++--
51 files changed, 468 insertions(+), 229 deletions(-)
create mode 100644 lib/librte_eal/common/eal_common_vdev.c
create mode 100644 lib/librte_eal/common/include/rte_vdev.h
--
2.9.0
More information about the dev
mailing list