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