On Tue, 16 Jul 2019 22:14:22 +0530 Nithin Dabilpuram <ndabilpu...@marvell.com> wrote:
> This reverts commit 89aac60e0be9ed95a87b16e3595f102f9faaffb4. > "vfio: fix interrupts race condition" > > The above mentioned commit moves the interrupt's eventfd setup > to probe time but only enables one interrupt for all types of > interrupt handles i.e VFIO_MSI, VFIO_LEGACY, VFIO_MSIX, UIO. > It works fine with default case but breaks below cases specifically > for MSIX based interrupt handles. > > * Applications like l3fwd-power that request rxq interrupts > while ethdev setup. > * Drivers that need > 1 MSIx interrupts to be configured for > functionality to work. > > VFIO PCI for MSIx expects all the possible vectors to be setup up > when using VFIO_IRQ_SET_ACTION_TRIGGER so that they can be > allocated from kernel pci subsystem. Only way to increase the number > of vectors later is first free all by using VFIO_IRQ_SET_DATA_NONE > with action trigger and then enable new vector count. > > Above commit changes the behavior of rte_intr_[enable|disable] to > only mask and unmask unlike earlier behavior and thereby > breaking above two scenarios. > > Fixes: 89aac60e0be9 ("vfio: fix interrupts race condition") > Cc: david.march...@redhat.com > > Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com> This fixes the problem I am seeing with MSI-X. Even with testpmd... EAL: Error enabling MSI-X interrupts for fd 39 Tested-by: Stephen Hemminger <step...@networkplumber.org>