On Tue, 17 Mar 2020 15:50:38 -0400
Peter Xu <peterx@redhat.com> wrote:
> It's currently broken. Let's use the slow path to at least make it
> functional.
>
> Tested-by: Eric Auger <eric.auger@redhat.com>
> Reviewed-by: Eric Auger <eric.auger@redhat.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
> hw/vfio/pci.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Alex Williamson <alex.williamson@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);