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