IRQ Labeling
IRQ IDs are now labeled according to their device functionality.
To obtain the current devices IRQ mapping:
Enable the debug status:
sysctl dev.mce.<N>.conf.debug_stats=
1Dump the IRQ vectors by reading the hw_ctx_debug sysctl:
sysctl dev.mce.<N>.hw_ctx_debug
Output Example
sysctl -n dev.mce.0.hw_ctx_debug
pages irq 99
command irq 100
async irq 101
channel 0 rq 131 cq 17 irq 102
channel 0 tc 0 sq 130 cq 16 irq 102
channel 1 rq 134 cq 19 irq 103
channel 1 tc 0 sq 133 cq 18 irq 103
channel 2 rq 137 cq 21 irq 104
channel 2 tc 0 sq 136 cq 20 irq 104
channel 3 rq 140 cq 23 irq 105
channel 3 tc 0 sq 139 cq 22 irq 105
channel 4 rq 143 cq 25 irq 106
channel 4 tc 0 sq 142 cq 24 irq 106
channel 5 rq 146 cq 27 irq 107
channel 5 tc 0 sq 145 cq 26 irq 107
channel 6 rq 149 cq 29 irq 108
channel 6 tc 0 sq 148 cq 28 irq 108
channel 7 rq 152 cq 31 irq 109
channel 7 tc 0 sq 151 cq 30 irq 109
channel 8 rq 155 cq 49 irq 110
channel 8 tc 0 sq 154 cq 48 irq 110
channel 9 rq 158 cq 51 irq 111
channel 9 tc 0 sq 157 cq 50 irq 111
channel 10 rq 161 cq 53 irq 112
channel 10 tc 0 sq 160 cq 52 irq 112
channel 11 rq 164 cq 55 irq 113
channel 11 tc 0 sq 163 cq 54 irq 113
The value after the “irq” keyword indicates which system IRQ vector is used for the given resource. This IRQ value is accepted by utilities such as cpuset(1). At the moment, there are five different resources that use IRQ vector:
Page allocation or free interrupts
Command interrupts
Asynchronous event interrupts
Transmit ring completion interrupts
Receive ring completion interrupt