我试图通过更改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发布于 2018-06-30 02:08:37
IRQ 51上的设备很可能不支持IO。您可以通过运行以下命令来检查这一点:
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,来自硬件的中断将只传送到引导操作系统的CPU (通常是CPU#0)。
另一个有用的参考是SMP IRQ亲和力。
https://unix.stackexchange.com/questions/452614
复制相似问题