put the port name in the interrupt handler name. this way we can see the interrupt activity per port since the time is assigned to the first handler, you can see that interrupts are happening before all the handlers are installed in the example below comer# grep uartox958 /dev/irqalloc 68.0 11 73 6001992 ioapic uartox958.1.0.0 prt 15 68.0 11 2 192330 ioapic uartox958.1.0.0 prt 14 68.0 11 3 240048 ioapic uartox958.1.0.0 prt 13 68.0 11 2 166392 ioapic uartox958.1.0.0 prt 12 68.0 11 6 366687 ioapic uartox958.1.0.0 prt 11 68.0 11 2 142083 ioapic uartox958.1.0.0 prt 10 68.0 11 3 185112 ioapic uartox958.1.0.0 prt 9 68.0 11 3 163674 ioapic uartox958.1.0.0 prt 8 68.0 11 7 278307 ioapic uartox958.1.0.0 prt 7 68.0 11 1 37908 ioapic uartox958.1.0.0 prt 6 68.0 11 1 34137 ioapic uartox958.1.0.0 prt 5 68.0 11 1 25848 ioapic uartox958.1.0.0 prt 4 68.0 11 1 24480 ioapic uartox958.1.0.0 prt 3 68.0 11 1 18675 ioapic uartox958.1.0.0 prt 2 68.0 11 1 15354 ioapic uartox958.1.0.0 prt 1 68.0 11 1 8010 ioapic uartox958.1.0.0 prt 0 Reference: /n/atom/patch/applied/uartoxprt Date: Tue Jan 7 17:27:05 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/uartox958.c Tue Jan 7 17:22:09 2014 +++ /sys/src/nix/k10/uartox958.c Tue Jan 7 17:22:09 2014 @@ -10,6 +10,7 @@ #include "../port/error.h" #include "../port/uartp8250.h" +/* need a way to chain these on the irq */ extern PhysUart ox958physuart; static uint @@ -104,7 +105,7 @@ } uart->regs = ctlr; - snprint(buf, sizeof buf, "%s.%.8ux", "OXPCIe958", p->tbdf); + snprint(buf, sizeof buf, "uartox958.%T prt %d", p->tbdf, i); kstrdup(&uart->name, buf); uart->freq = 62284801; uart->phys = &ox958physuart;