无法更改 smp_affinity 中的值

无法更改 smp_affinity 中的值

我试图通过更改 smp_affinity 中的值来设置 linux 上的 irq 亲和力。当我将新值回显到文件中时,没有收到任何错误,但当我读回它时,该值保持不变。我没有启用 irqbalance,所以我不确定还有什么可能阻止我更改它。

例如:

> cat /proc/irq/51/smp_affinity   
f
> echo 1 > /proc/irq/51/smp_affinity   
> cat /proc/irq/51/smp_affinity   
f

答案1

IRQ 51 上的设备可能不支持 IO-APIC。您可以通过运行以下命令来检查:

cat /proc/interrupts

我在下面提供了一些(编辑过的)示例输出:

           CPU0       CPU1       CPU2       CPU3
  0:         31          0          0          0   IO-APIC-edge      timer
  6:          0          0          0          2   IO-APIC-edge      floppy
 51:          0          0          0          0   PCI-MSI-edge      PCIe PME, pciehp

在示例系统上,我可以更改 IRQ 6 的 smp_affinity,但不能更改 IRQ 51。(虽然 IRQ 0 列出了 IO-APIC-edge,但我无法为该 IRQ 设置 smp_affinity。我不确定为什么。 )

IO-APIC.txt:

如果没有 IO-APIC,来自硬件的中断将仅传递到启动操作系统的 CPU(通常为 CPU#0)。

另一个有用的参考是SMP IRQ 亲和性

相关内容