at 2:07 AM, Keith Busch <kbu...@kernel.org> wrote: > MSI-x uses MMIO for masking, so there's no need for an NVMe specific way to > mask these interrupts. You can just use the generic PCIe methods to clear the > vector's enable bit. But no NVMe driver that I know of is making use of these > either, though it should be possible to make linux start doing that.
I believe we need to handle MSI-x masking in the NVMe controller after we switch to irqfd. Before that QEMU’s MSI-x emulation logic helps us handle masked interrupts. But with irqfd, we bypass QEMU’s MSI-x and let the kernel send the interrupt directly. Therefore qemu-nvme needs to do some bookkeeping about which interrupt vectors are masked. msix_set_vector_notifiers helps us do that.