On 2021-11-29 5:29 p.m., Thomas Gleixner wrote: > At the conceptual level these interrupts are in separate irq domains: > > | _______________________ > | | | > | | NTB | > | | | > | | PCI config space | > | | MSI-X space | <- #1 Global or per IOMMU zone PCI/MSI domain > | |_____________________ | > |---| | > | Memory window A | > | Memory window .. | <- #2 Per device NTB domain > | Memory window N | > |______________________| > > You surely can see the disctinction between #1 and #2, right? I wouldn't say that's entirely obvious or even irrefutable. However, I'm certainly open to this approach if it improves the code. > I'm way too tired to come up with a proper solution for that, but that > PCI_IRQ_VIRTUAL has to die ASAP. I'm willing to volunteer a bit of my time to clean this up, but I'd need a bit more direction on what a proper solution would look like. The MSI domain code is far from well documented nor is it easy to understand. Logan