On Tue, 17 Mar 2020 15:50:38 -0400 Peter Xu <pet...@redhat.com> wrote:
> It's currently broken. Let's use the slow path to at least make it > functional. > > Tested-by: Eric Auger <eric.au...@redhat.com> > Reviewed-by: Eric Auger <eric.au...@redhat.com> > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > hw/vfio/pci.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) Reviewed-by: Alex Williamson <alex.william...@redhat.com> Acked-by: Alex Williamson <alex.william...@redhat.com> > diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c > index 5e75a95129..98e0e0c994 100644 > --- a/hw/vfio/pci.c > +++ b/hw/vfio/pci.c > @@ -128,6 +128,18 @@ static void vfio_intx_enable_kvm(VFIOPCIDevice *vdev, > Error **errp) > return; > } > > + if (kvm_irqchip_is_split()) { > + /* > + * VFIO INTx is currently not working with split kernel > + * irqchip for level triggered interrupts. Go the slow path > + * as long as split is enabled so we can be at least > + * functional (even with poor performance). > + * > + * TODO: Remove this after all things fixed up. > + */ > + return; > + } > + > /* Get to a known interrupt state */ > qemu_set_fd_handler(irqfd.fd, NULL, NULL, vdev); > vfio_mask_single_irqindex(&vdev->vbasedev, VFIO_PCI_INTX_IRQ_INDEX);