[dpdk-dev] [RFC PATCH 0/6] remove pci driver from vdevs
Zende, Amruta S
amruta.zende at intel.com
Mon Sep 7 11:22:23 CEST 2015
Certain functions like "rte_eth_dev_socket_id" assume the device to be a PCI device and access pointers like rte_eth_devices[port_id].pci_dev->numa_node.
Any such assumptions and dependencies should also be removed.
Thanks & regards,
Amruta Zende
+91-20-4305-2969
-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Iremonger, Bernard
Sent: Thursday, September 3, 2015 7:33 PM
To: Thomas Monjalon; Neil Horman
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] [RFC PATCH 0/6] remove pci driver from vdevs
Hi Neil, Thomas,
> > <snip>
> >
> > > > You didn't remove the relationship of the ethdev to the pci
> > > > driver though, which is really the problem, An ethdev may reside
> > > > on any number of bus types (pci/usb/vmbus/virt/none).
> >
> > <snip>
> >
> > > > Whats really needed is a way to associate an ethdev with an
> > > > arbitrary bus
> >
> > <snip>
> >
> > > > > Please see email below from 6Wind
> > > > >
> > > > > http://dpdk.org/ml/archives/dev/2015-July/022107.html
> > > > >
> > > > I think you misread that. I think all Thomas is asking for
> > > > (correct me if I'm wrong Thomas), is for someone to start
> > > > refactoring the ethdev registration code so that we can have a
> > > > single init path without the need for wierd typing and
> > > > differentiation at
> init time.
> >
> > <snip >
> >
> > > > We just need to
> > > > start thinking about how to make bus registration independent of
> > > > ethernet device registration, and while your patch series sort
> > > > of eliminates some of that, its really not a proper refactoring
> > > > of the sort I think Thomas is asking for.
> >
> > I am just trying to distill what the actual requirement is from the
> > above
> discussion.
> >
> > (1) Remove relationship of the ethdev to the pci driver.
> Correct
I plan to continue work on the RFC to address this.
>
> > (2) Refactor ethdev registration code so that there is a single init path.
> Correct (or mostly correct, in rereading my initial post, there may be
> some ambiguitiy here)
>
> > (3) Make bus registration independent of ethdev registration.
> Correct
>
> > (4) Change all (17) PMD's to use the modified structures.
> >
> Correct (I assume the 17 number is accurate here)
There are 17 PMD directories some of which have multiple PMD's.
The total number of PMD's is 23 at present.
> > The rte_eal_driver_registration() code is in librte_eal, untouched
> > as yet by
> this patch set.
> >
> Correct, the code that registers an init function is a single path, which is great.
> However, that path requires that you specify a device type (in this
> case PMD_PDEV or PMD_VDEV to differentiate pci vs virtual devices (it
> uses this for ordering of initalization in rte_eal_dev_init, which is
> a hack). What would be preferred would be if the structure that was
> registered via that macro only held a name and an init routine to
> initalize the driver itself. Inside that init routine, the driver
> would then be responsible for registering with the appropriate bus
> type (virtual/pci/usb/whatever). A secondary function would be
> registered as part of that process (akin to the linux/bsd probe()
> method) which was called once for each instance of the device found on
> that bus.
>
I will send a second RFC to address the eal driver registration code issues in librte_eal.
> > The rte_eth_driver_registration() code is in librte_ether.
> > Should the pci fields be removed from the struct rte_eth_dev{} and
> > struct eth_driver{},
> IMO, yes, they should, as the driver can store pointers to those
> devices in their private per-device data area. That said, there may
> be value in including a union of all bus types in the ethdev itself,
> if there are higher layer functions that need to be aware of a given
> ethdevs bus type
I plan to park the issue of multiple bus types for now.
More consensus is needed on the best way forward.
>
> > and put somewhere else or replaced with a union of bus types and
> drivers?
Regards,
Bernard.
More information about the dev
mailing list