[dpdk-dev] [PATCH v1 0/5] Enable hotplug in vfio
Gaëtan Rivet
gaetan.rivet at 6wind.com
Tue Aug 21 10:17:42 CEST 2018
On Tue, Aug 21, 2018 at 02:45:32PM +0800, Jeff Guo wrote:
> hi, gaetan
>
>
> On 8/20/2018 5:15 PM, Gaëtan Rivet wrote:
> > Hi Jeff,
> >
> > On Fri, Aug 17, 2018 at 06:51:26PM +0800, Jeff Guo wrote:
> > > As we may know that the process of hotplug is different between igb_uio
> > > and vfio. For igb_uio, it could use uevent notification and memory
> > > failure handle mechanism for hotplug. But for vfio, when device is be
> > > hotplug-out, the uevent can not be detected immediately, because of the
> > > vfio kernel module will use a special mechanism to guaranty the pci
> > > device would not be deleted until the user space release the resources,
> > > so it will use another event “req notifier” at first to notify user space
> > > to release resources for hotplug.
> > >
> > > This patch will add a new interrupt type of req notifier in eal interrupt,
> > > and add the new interrupt handler in pci device to handle the req device
> > > event. When the req notifier be detected, it can trigger the device event
> > > callback process to process for hotplug. With this mechanism, hotplug
> > > could be enable in vfio.
> > >
> > The REQ event seems VFIO specific.
> > Why not leave it within the PCI bus, around the vfio glue, and leave the
> > EAL unmodified?
>
> Sorry i don' t see if there are any problem. Firstly, as we can see the eal
> interrupt type, it cover the ext/uio/vfio/dev event types, which are not
> general for all platform/bus/driver type.
> so i think base on the current framework, the interrupt type structure
> should be considerate as combined set, it could extend for other adding
> interrupts case by case. And secondly, i don't know what
> is your way about leave it within the PCI bus, because i need to use the eal
> interrupt epoll to process this req interrupt which is familiar with other
> interrupts. What do you think about that, if you still
> have better suggestion, please detail it for clarify.
>
Ah, yes, unfortunately you're right.
There is a genericization effort going on for the EAL, but these parts
are still depending on the interrupts being reworked. So for now, not
much can be done to avoid it.
> > > Jeff Guo (5):
> > > eal: add a new req notifier to eal interrupt
> > > eal: add a new req event to device event
> > > eal: modify device event callback process func
> > > pci: add req handler field to generic pci device
> > > vfio: enable vfio hotplug by req notifier handler
> > >
> > > drivers/bus/pci/linux/pci_vfio.c | 104 +++++++++++++++++++++
> > > drivers/bus/pci/pci_common.c | 10 ++
> > > drivers/bus/pci/rte_bus_pci.h | 1 +
> > > lib/librte_eal/common/eal_common_dev.c | 5 +-
> > > lib/librte_eal/common/eal_private.h | 12 ---
> > > lib/librte_eal/common/include/rte_dev.h | 20 +++-
> > > lib/librte_eal/common/include/rte_eal_interrupts.h | 1 +
> > > lib/librte_eal/linuxapp/eal/eal_dev.c | 2 +-
> > > lib/librte_eal/linuxapp/eal/eal_interrupts.c | 71 ++++++++++++++
> > > lib/librte_ethdev/rte_ethdev.c | 3 +-
> > > 10 files changed, 212 insertions(+), 17 deletions(-)
> > >
> > > --
> > > 2.7.4
> > >
>
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list