一台 PC 可以有多少个硬件(PCI-MSI)中断?

一台 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 核)上,有 7 个这样的中断。

这取决于处理器的数量吗?IO-APIC 级别是软件中断吗?

我想将 PCI-MSI 中断分配给我的网卡以提高性能。

答案1

IIRC PC 可以有任意数量的 MSI 中断。但每个设备限制为 32 个(对于 PCI 2.2)或 2048 个(对于 PCI 3.0)MSI 中断。

也可以看看有关消息信号中断的 wiki

答案2

从一些基础研究来看,不同的硬件似乎会有不同的数字。

“NIC 的每个接收 DMA 通道都可以生成一个中断,每个中断将针对一个 CPU。Sun Multi-threaded 10GbE 每个端口有 8 个接收 DMA 通道,而 Quad GbE 有 4 个,因此它们的中断分别最多可以针对 8 个和 4 个不同的 CPU。为了避免中断 CPU 成为性能瓶颈,建议从每个端口的接收 DMA 通道数或(CPU 数量)中的较低者开始,以便将中断负载分配给足够的 CPU。”

http://www.solarisinternals.com/wiki/index.php/Networks

因此我们需要了解您的主板/proc/NIC,以找出最佳设置。

答案3

“边缘”和“级别”指的是边缘触发与级别触发,这在硬件领域有很大区别。只有在谈论并行 PCI 总线的 4 条物理中断线时,这种区别才有意义,除非它是此类行为的软件模拟,或者在 PCIe-PCI 桥后面的并行总线段上(有时在扩展板内使用)。

相关内容