On Fri, Jun 06, 2025 at 05:10:34PM -0700, John Levon wrote: > If VFIO_IRQ_INFO_MASKABLE is set for VFIO_PCI_MSIX_IRQ_INDEX, record > this in ->can_mask_msix, and use it to individually mask MSI-X > interrupts as needed.
I'm just going to drop this patch. Neither vfio nor libvfio-user (including qemu-as-server) report MASKABLE for MSI-X anyway, so it doesn't seem relevant. I'm not sure if Oracle had some other use case in mind or had previously tested it somehow. Furthermore, this: > @@ -702,6 +721,13 @@ static void vfio_msix_enable(VFIOPCIDevice *vdev) > error_report("vfio: failed to enable vectors, %s", > strerror(-ret)); > } > + } else if (vdev->can_mask_msix) { > + /* > + * If we can use single irq masking, send an invalid fd on vector 0 > + * to enable MSI-X without any vectors enabled. > + */ > + vfio_device_irq_set_signaling(&vdev->vbasedev, > VFIO_PCI_MSIX_IRQ_INDEX, > + 0, VFIO_IRQ_SET_ACTION_TRIGGER, -1, > NULL); > } else { > /* > * Some communication channels between VF & PF or PF & fw rely on the Seems odd as it doesn't pass DATA_EVENTFD, unlike the vfio_enable_msix_no_vec() below it; I have no idea why the difference or if it makes sense, but it doesn't seem so. regards john