Thanks to all for your feedback on above topic at the DPDK userspace summit.

I've summarised the feedback below - left out names as I'm paraphrasing and 
don't want to misrepresent anyone.


*       One vendor has tried same approach, ran into similar problems with 
knock-on impacts to eth-dev, has instead worked around by not sharing the 
device, instead allocating different VFs to different PMDs. Needs a 
modification of whitelist functionality, maybe extra cmdline parameters to do 
this.

*       Another vendor also tried similar, wanting to create a device per port. 
Had limitations with interrupts. Worked around by handling within one PMD 
instead of a generic solution within EAL.

*       Several suggestions related to resolving in other ways within EAL, e.g.

o   any driver which can share a device could append a new device to the end of 
the bus device-list during its probe, in effect it takes the resources it 
needs, the remainder of the device is appended to the device-list where it can 
be found by another driver. Questions re where the shared data could be stored 
and how attach/detach would work.

o   a variant of this could be a master driver claims the PCI device - spawning 
multiple slave devices which are then claimed by service-specific drivers. 
Probably easier to manage the attach/detach and shared data with this approach.

o   create a new bus type, one PCI device driver could create sub-devices on a 
sub-bus - these devices could be shared as the bus would have its own 
probe/remove fns and type-specific structs.

*       Stick with one PMD per device and hide the sharing of multiple 
functions within this PMD.

Next steps:
Though this does seem to be a generic problem, I'm not now planning to push a 
patch relating to this.
Instead to work on one PMD claiming one device, but being able to implement 
multiple APIs. So an application could see 2 independent devices each servicing 
a different API while only one PMD implements them both using the same 
underlying hardware. I have ideas now for how this can work, if it does, then 
there's no need for separate drivers for the same PCI device.


Regards,
Fiona


Reply via email to