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

関連情報