Linux的中斷號是假的!與硬件中斷號是什麼關係?

下面的這個視頻解釋了Linux的中斷號與硬件裏面中斷號之間究竟是什麼關係澄清關於Linux中斷號的誤解。

# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       
 16:       3092       2942       1436       1997       GIC  29  twd
 17:         10          0          0          0       GIC  34  timer
 31:          4          0          0          0       GIC  47  eth0
 34:        375          0          0          0       GIC  41  mmci-pl18x (cmd)
 35:      22227          0          0          0       GIC  42  mmci-pl18x (pio)
 36:          8          0          0          0       GIC  44  kmi-pl050
 37:         98          0          0          0       GIC  45  kmi-pl050
 38:        108          0          0          0       GIC  37  uart-pl011
 44:          0          0          0          0       GIC  36  rtc-pl031
IPI0:          0          1          1          1  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:        653        682        935        364  Rescheduling interrupts
IPI3:          1          2          2          1  Function call interrupts
IPI4:          0          0          0          0  Single function call interrupts
IPI5:          0          0          0          0  CPU stop interrupts
IPI6:          0          0          0          0  IRQ work interrupts
IPI7:          0          0          0          0  completion interrupts
Err:          0


實驗平臺爲ARM。視頻解釋上述/proc/interrupts裏面的16,17,31,34,35,36,38,44等這些中斷號與ARM GIC(Generic Interrupt Controller)裏面硬件中斷號之間的關係。

硬件的中斷號我們一般稱爲“hwirq”,通常意味中斷控制器裏面哪個bit被設置了。Linux會建立Linux的IRQ號與hwirq的映射關係。

(END)

Linux閱碼場原創精華文章彙總

更多精彩,盡在"Linux閱碼場",掃描下方二維碼關注

別忘了點“在看”鼓勵哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章