On Mon, 2018-11-26 at 13:24 -0600, Robert Hancock wrote: > > > Also, I think the new irq domain stuff in 4.17 breaks irq accounting to > > the GIC chain interrupt (152) to the dwc msi domain. It'll always show > > as zero in /proc/interrupts. But I've mostly been working in 4.16 so > > I'm not sure about the precise interaction of irq domains and > > /proc/interrupts yet. > > I'm not actually seeing the MSI interrupt showing up in /proc/interrupts > at all in 4.19. From adding some debug output into the dwc PCIe code, it > appears it's using Linux IRQ 24 as the chaining interrupt, but there's > no entry in /proc/interrupts for either Linux IRQ 24 or GIC vector 152. > Not sure if there is supposed to be or not. It does appear that the > vector isn't masked in the GIC in any case, however, and when I force > the interrupt into the GIC pending register, things seem to happen > properly after that. In 4.16, the MSI chaining interrupt does show up in /proc/interrupts and does increment. Also shows up as trace events too. In 4.17, it no longer appears in /proc/interrupts. Finding the Linux irq number is non-obvious, as you've seen. It will show up in /sys/kernel/irq and /sys/kernel/debug/irq/irqs, but the count is always zero. IMHO, not an improvement. So if you're using that count in /sys to determine that the GIC irq never fired, then it's not conclusive. It always reads zero. But the same problem 2014 would obviously predate the 4.17 kernel.