Linux

一台 PC 可以有多少個硬體 (PCI-MSI) 中斷?

  • June 12, 2012

在我的工作站上,/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 以找出最佳設置。

引用自:https://serverfault.com/questions/28712