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 선호도.