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の好み。