[dpdk-users] Interrupt mode, queues, own event loop
Budiský Jakub
ibudisky at fit.vutbr.cz
Sat Sep 5 23:21:06 CEST 2020
On 2020-09-04 18:18, Stephen Hemminger wrote:
> The per-queue interrupt functionality for PCI devices is built
> on top of MSI-X interrupts. The uio_pci_generic driver you are using
> does not support MSI-X.
>
> The way UIO driver works is to use the legacy INTx functionality,
> and when an interrupt occurs the device driver in the kernel is called.
> For the uio_pci_generic driver this is mapped to the device file
> descriptor.
>
> For VFIO, you can have one interrupt per queue and it uses eventfd's
> to create a per-queue channel.
Hi,
thanks for the valuable info!
I've now switched to the `vfio` module even for testing and I can
confirm I get a set of separate eventfd file descriptors. I've
encountered a new issue though that appears like a bug to me.
Either one of the file descriptors (`--vfio-intr msix`, always the one
associated with the last queue, regardless of the initialization order)
or all of them (`--vfio-intr msi`) are available for reading just once
per application run. I cannot get any followup interrupts and I can
confirm by polling that there are new packets that have arrived.
With `--vfio-intr legacy` I get a same file descriptor for all my
workers but it is also only triggered once.
As far as I understand there is no clear flag for the MSI(-X) interrupts
and so I'm not sure what else to try. There is nothing of interest in
the application output (not even with `--log-level lib.eal:debug`).
Thanks again.
Best regards,
Jakub Budisky
More information about the users
mailing list