at 11:34 PM, Keith Busch <kbu...@kernel.org> wrote: > On Fri, Aug 26, 2022 at 11:12:04PM +0800, Jinhao Fan wrote: >> Use KVM's irqfd to send interrupts when possible. This approach is >> thread safe. Moreover, it does not have the inter-thread communication >> overhead of plain event notifiers since handler callback are called >> in the same system call as irqfd write. >> >> Signed-off-by: Jinhao Fan <fanjinhao...@ict.ac.cn> >> Signed-off-by: Klaus Jensen <k.jen...@samsung.com> > > No idea what's going on here... This one is causing the following assert > failure with --enable-kvm: > > qemu-system-x86_64: ../accel/kvm/kvm-all.c:1781: kvm_irqchip_commit_routes: > Assertion `ret == 0' failed. > > I find it calls KVM_SET_GSI_ROUTING ioctl with gsi set to KVM_IRQ_ROUTING_MSI, > and linux kernel returns EINVAL in that case. It's never set that way without > this patch. Am I the only one seeing this?
nvme_start_ctrl() registers MSI-X masking handlers without checking irq-eventfd. This causes nvme_kvm_vector_unmask() to be called when it is not supposed to.