IRQとは
割り込み要求信号
パソコンの周辺機器に即時処理しなければならない事態が生じたとき、CPUへ送られる割り込み処理を要求する信号のこと
確認方法
現在までの割り込み発生数を確認する
root@hostname:/home/shimizu# cat /proc/interrupts CPU0 CPU1 0: 31 0 IO-APIC-edge timer 1: 9 0 IO-APIC-edge i8042 4: 682 0 IO-APIC-edge serial 6: 2 0 IO-APIC-edge floppy 8: 8 0 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 10: 0 0 IO-APIC-fasteoi virtio2 11: 23 0 IO-APIC-fasteoi uhci_hcd:usb1 12: 142 0 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge ata_piix 15: 131 0 IO-APIC-edge ata_piix 40: 0 0 PCI-MSI-edge virtio0-config 41: 202476885 0 PCI-MSI-edge virtio0-input 42: 82 0 PCI-MSI-edge virtio0-output 43: 0 0 PCI-MSI-edge virtio1-config 44: 3290049 0 PCI-MSI-edge virtio1-requests NMI: 56205 43082 Non-maskable interrupts LOC: 284668650 190261695 Local timer interrupts SPU: 0 0 Spurious interrupts PMI: 56205 43082 Performance monitoring interrupts IWI: 0 0 IRQ work interrupts RES: 34405406 33792271 Rescheduling interrupts CAL: 297 605 Function call interrupts TLB: 967908 974682 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts MCE: 0 0 Machine check exceptions MCP: 30804 30804 Machine check polls ERR: 0 MIS: 0 root@hostname:/home/shimizu# cat /proc/irq/0/smp_affinity 3
IRQは、0~15の16種類用意されている
0 システムタイマー
1 キーボード
2 スレーブの割り込みを転送
3 シリアルポート(COM2)
4 シリアルポート(COM1)
5 パラレルポート(LPT2)
6 フロッピーディスクドライブ
7 パラレルポート(LPT1)
8 リアルタイムクロック
9 未使用
10 未使用
11 未使用
12 PS/2マウス
13 数値演算プロセッサ
14 プライマリIDE
15 セカンダリIDE
であり、利用されていないもの(シリアルポートやパラレルポート)は表示されない
参考URL
COMとLPT
http://www.linux-beginner.com/lpic_level1_3.html
ハードウェア割り込み処理
http://sourceforge.jp/projects/linux-kernel-docs/wiki/2.3%E3%80%80%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%87%A6%E7%90%86
4.3. 割り込みおよび IRQ チューニング
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-cpu-irq.html