On Wed, 27 Jan 2016, Konrad Rzeszutek Wilk wrote: > On Wed, Jan 13, 2016 at 02:59:09PM +0000, Stefano Stabellini wrote: > > On Xen MSIs can be remapped into pirqs, which are a type of event > > channels. It's mostly for the benefit of PCI passthrough devices, to > > avoid the overhead of interacting with the emulated lapic. > > > > However remapping interrupts and MSIs is also supported for emulated > > devices, such as the e1000 and virtio-net. > > > > When an interrupt or an MSI is remapped into a pirq, masking and > > unmasking is done by masking and unmasking the event channel. The > > masking bit on the PCI config space or MSI-X table should be ignored, > > but it isn't at the moment. > > > > As a consequence emulated devices which use MSI or MSI-X, such as > > virtio-net, don't work properly (the guest doesn't receive any > > notifications). The mechanism was working properly when xen_apic was > > By xen_apic I presume the Linux Xen APIC code?
Nope, I mean hw/i386/xen/xen_apic.c in QEMU. > > introduced, but I haven't narrowed down which commit in particular is > > causing the regression. > > It sounds like the issue was due to the Xen APIC code? Or am I misreading it? When xen_apic was introduced in QEMU, MSIs did work correctly. After all xen_apic was created to make emulated MSIs work on Xen, it wouldn't have been possible to test it otherwise.