[dpdk-dev] [PATCH v1 00/15] rte_driver/device infrastructure
Jan Viktorin
viktorin at rehivetech.com
Fri Jul 15 17:33:59 CEST 2016
On Fri, 15 Jul 2016 15:19:14 +0200
Thomas Monjalon <thomas.monjalon at 6wind.com> wrote:
> 2016-07-08 21:09, Jan Viktorin:
> > 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...
>
> Please could you give a clear overview of how you split the work in
> your respective series?
Yes, it's a bit messy... My quick summary follows.
>
> I take the opportunity to put my notes about some initial targets of
> this refactoring:
>
> module/drivers
> attached to 1 bus: pci_driver or vdev_driver
pci_driver is done by Shreyansh/David
vdev_driver is done by myself
> rte_device = device resources / embedded in pci/vdev_driver
Extraction of rte_device is done by myself
> attached to n device interfaces (ethdev, crypto)
> 1 device resource -> n device interfaces
I am not sure, what those two points means exactly.
> hotplug resource -> lookup drivers list
> per-bus lists or 1 list?
Not sure. At least partially done by Shreyansh/David.
> devinit/devuninit generalized and moved to rte_driver
> -> rename to probe/remove
Some renames done by Shreyansh/David.
There will be no move. The vdev_driver has different kind of init/uninit
then PCI. So I cannot see a simple way how to generalize this.
I'll do the final init->probe, uninit->remove renames.
> crypto.dev_type could be dropped
I am not sure about this.
> drv_flags should be moved to rte_driver
I'll do.
> intr_init can be moved earlier in init, before affinity set
> devices
Done by Shreyansh/David.
> unique_device_name -> standard naming?
Done for PCI: rte_eal_pci_device_name by Shreyansh/David.
> difference with port_id ? -> device id for ethdev
Not sure.
> should be unique_resource_name -> 1 EAL resource may match several devices
Not sure.
> ethdev manage an interface, eal manage a hardware resource, device object in between?
Not sure about the question.
> need for bus object?
I don't think so at this stage.
> no need of driver object, module object?
The current rte_driver will not exist. Same for any kind of module.
> devargs, intr_handle, numa_node should be moved to rte_device
Yes, done by myself.
> hotplug notification to do
> notify free-able ressource?
> remove blacklist at EAL level and let application handle it
> devargs still in hotplug function, must be moved in separate API
> devargs
> new API
> new command line parameters
>
--
Jan Viktorin E-mail: Viktorin at RehiveTech.com
System Architect Web: www.RehiveTech.com
RehiveTech
Brno, Czech Republic
More information about the dev
mailing list