New tool to help visualize /proc/interrupts and info in /proc/irq/$INT/
By joe
- 2 minutes read - 400 wordsThis is a start, not ready for release yet, but already useful as a diagnostic tool. I wanted to see how my IRQs were laid out, as this has been something of a persistent problem. I’ve built some intelligence into our irqassign.pl tool, but I need a way to see where the system is investing most of its interrupts. I omit (on purpose) IRQs that have been assigned, but have generated no interrupts. I haven’t (as of yet) worked the driver bits backward to reach to the module/kernel driver responsible. I do plan to do this. This is on one of our engineering systems in the lab. Is it me, or does IOAT look borked? As I said, this is for visualization. I’ll get the code up on github tomorrow. It uses sparklines, but in the absence of that, it will return actual counts.
[
](/images/lsint.png)
[edit: the sparklines don’t show up well in text cut and paste …]
root@ucp-01:~# ./lsint.pl
IRQ Node Mask Driver Counts on CPU23 to CPU0
0 0 ffffff timer ????????????????????????
3 0 03f03f serial ????????????????????????
8 0 03f03f rtc0 ????????????????????????
9 0 03f03f acpi ????????????????????????
18 -1 ffffff i801_smbus ????????????????????????
31 1 000001 eth1 ????????????????????????
32 1 000002 eth1-TxRx-0 ????????????????????????
33 1 000004 eth1-TxRx-1 ????????????????????????
34 1 000008 eth1-TxRx-2 ????????????????????????
35 1 000010 eth1-TxRx-3 ????????????????????????
38 1 000002 eth2-TxRx-0 ????????????????????????
39 1 000004 eth2-TxRx-1 ????????????????????????
40 1 000008 eth2-TxRx-2 ????????????????????????
41 1 000010 eth2-TxRx-3 ????????????????????????
45 0 03f03f mlx4-async@pci:0000:01:00.0 ????????????????????????
46 0 000001 IR-PCI-MSI-edge ????????????????????????
69 0 000001 arcmsr ????????????????????????
75 0 000010 arcmsr ????????????????????????
79 1 000100 arcmsr ????????????????????????
83 1 001000 arcmsr ????????????????????????
88 0 03f03f 0000:00:1f.2 ????????????????????????
100 1 000001 aacraid ????????????????????????
101 1 000002 aacraid ????????????????????????
102 1 000004 aacraid ????????????????????????
103 1 000008 aacraid ????????????????????????
104 1 000010 aacraid ????????????????????????
105 1 000020 aacraid ????????????????????????
106 1 000040 aacraid ????????????????????????
107 1 000080 aacraid ????????????????????????
109 0 03f03f ioat-msix ????????????????????????
111 0 03f03f ioat-msix ????????????????????????
112 0 03f03f ioat-msix ????????????????????????
113 0 03f03f ioat-msix ????????????????????????
114 0 03f03f ioat-msix ????????????????????????
115 0 03f03f ioat-msix ????????????????????????
116 0 03f03f ioat-msix ????????????????????????
117 0 03f03f ioat-msix ????????????????????????
119 1 fc0fc0 ioat-msix ????????????????????????
121 1 fc0fc0 ioat-msix ????????????????????????
122 1 fc0fc0 ioat-msix ????????????????????????
123 1 fc0fc0 ioat-msix ????????????????????????
124 1 fc0fc0 ioat-msix ????????????????????????
125 1 fc0fc0 ioat-msix ????????????????????????
126 1 fc0fc0 ioat-msix ????????????????????????
127 1 fc0fc0 ioat-msix ????????????????????????
128 0 03f03f snd_hda_intel ????????????????????????