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

관련 정보