On Tue, Nov 04, 2025 at 07:46:46PM +0000, Shameer Kolothum wrote: > If we ignore and don't return the correct doorbell (gPA) here, > Qemu will end up invoking KVM_SET_GSI_ROUTING with wrong doorbell > which sets up the in-kernel vgic irq routing information. And when HW > raises the IRQ, KVM can't inject it properly.
That cannot be true. Again, there is no way for qmeu to put something meaningful into the 'struct kvm_irq_routing_msi' address_lo/hi. It cannot walk the page tables so it just ends up with some random meaningless guest IOVA. Qemu MUST ignore the vMSI's address information. So either the kernel ignores address_lo/high OR qemu should match the vPCI device to its single vGIC and put in the kernel expected address_lo/high always. It should never, ever use the value from the guest once nesting is enabled, and it should never be trying to translate the vMSI through some S2, or any other, address space. Translation is OK for non-nesting only. Jason
