Linux
一台 PC 可以有多少個硬體 (PCI-MSI) 中斷?
在我的工作站上,/proc/interrupts 中只有兩個 PCI-MSI 中斷:
0: 11726919 0 IO-APIC-edge timer 1: 3 0 IO-APIC-edge i8042 7: 0 0 IO-APIC-edge parport0 8: 1 0 IO-APIC-edge rtc 9: 0 0 IO-APIC-level acpi 12: 4 0 IO-APIC-edge i8042 58: 13 94016 PCI-MSI eth0 169: 843271 71766622 IO-APIC-level uhci_hcd:usb3, eth1, HDA Intel 201: 1 0 IO-APIC-level uhci_hcd:usb4, uhci_hcd:usb6 209: 0 0 IO-APIC-level ehci_hcd:usb1 217: 2 0 IO-APIC-level ehci_hcd:usb2, uhci_hcd:usb5 225: 27 72309141 IO-APIC-level uhci_hcd:usb7, eth2 233: 6683 103839 PCI-MSI ahci NMI: 2236 4056 LOC: 11696665 11696593 ERR: 0 MIS: 0
在其他更強大的 RACK Dell 機器(8 核)上,有七個這樣的中斷。
這是否取決於處理器的數量?IO-APIC 級別是軟體中斷嗎?
我想將 PCI-MSI 中斷分配給我的網卡以提高性能。
IIRC PC 可以有任意數量的 MSI 中斷。但是每個設備限制為 32 個(對於 PCI 2.2)或 2048 個(對於 PCI 3.0)MSI 中斷。
另請參閱有關消息信號中斷的 wiki
從一些基礎研究看來,不同的硬體會有不同的數字。
“網卡的每個接收 DMA 通道可以產生一個中斷,每個中斷會針對一個 CPU。Sun 多執行緒 10GbE 每個埠有 8 個接收 DMA 通道,而 Quad GbE 有 4 個,因此它們的中斷最多可以針對 8 個和 4 個為避免中斷 CPU 成為性能瓶頸,建議從每個埠的接收 DMA 通道數或 (# of CPU) 中的較低者開始,以便將中斷負載分配到足夠多的中央處理器。”
來自http://www.solarisinternals.com/wiki/index.php/Networks
因此,我們需要了解您的主機板/proc/NIC 以找出最佳設置。