[dpdk-dev] [PATCH v6 00/28] remove pci driver from vdevs

David Marchand david.marchand at 6wind.com
Fri Oct 30 14:32:35 CET 2015


Hello Bernard,

On Thu, Oct 29, 2015 at 7:36 PM, Bernard Iremonger <
bernard.iremonger at intel.com> wrote:

> There is a dummy pci driver in the vdev PMD's at present.
> This patch set removes the pci driver from the vdev PMD's.
> Changes have been made to librte_ether to handle vdevs and pdevs in the
> same way.
>
> [snip]
>
> Bernard Iremonger (28):
>   librte_eal: add RTE_KDRV_NONE for vdevs
>   librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
>   librte_ether: add function rte_eth_copy_dev_info
>   ixgbe: copy pci device info to eth_dev data
>   e1000: copy pci device info to eth_dev data
>   i40e: copy pci device info to eth_dev data
>   fm10k: copy pci device info to eth_dev data
>   bnx2x: copy pci device info to eth_dev data
>   cxgbe: copy pci device info to eth_dev data
>   enic: copy pci device info to eth_dev data
>   mlx4: copy pci device info to eth_dev data
>   virtio: copy pci device info to eth_dev data
>   vmxnet3: copy pci device info to eth_dev data
>   null: copy device info to eth_dev data
>   ring: copy device info to eth_dev data
>   pcap: copy device info to eth_dev data
>   af_packet: copy device info to eth_dev data
>   xenvirt: copy device info to eth_dev data
>   mpipe: copy device info to eth_dev data
>   bonding: copy device info to eth_dev data
>   librte_ether: remove branches on pci_dev
>   null: remove pci device
>   ring: remove pci device
>   pcap: remove pci device
>   af_packet: remove pci device
>   xenvirt: remove pci device
>   mpipe: remove pci device
>   bonding: remove pci device
>

We end up with kdrv none, while for virtual devices, I can't see a case
where we would need it.

And these flags end up in ethdev :
+/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */
+#define RTE_ETH_DEV_DRV_NEED_MAPPING   RTE_PCI_DRV_NEED_MAPPING
+/** Device needs to be unbound even if no module is provided */
+#define RTE_ETH_DEV_DRV_FORCE_UNBIND   RTE_PCI_DRV_FORCE_UNBIND
+/** Device supports link state interrupt */
+#define RTE_ETH_DEV_INTR_LSC   RTE_PCI_DRV_INTR_LSC
+/** Device  supports detaching capability */
+#define RTE_ETH_DEV_DETACHABLE RTE_PCI_DRV_DETACHABLE

I can't see the point of all this, you are just moving pci specific fields
to ethdev and I don't see how it would ease future cleanups or
introductions of other bus types.

A real cleanup would be something like what Neil already proposed before.


-- 
David Marchand


More information about the dev mailing list