12.4. 手动将 CPU 关联性分配给单独的 IRQ

分配 CPU 关联性可让绑定和取消绑定进程和线程到指定的 CPU 或 CPU 范围。这可减少缓存问题。

流程

  1. 通过查看 /proc/interrupts 文件,检查每个设备正在使用的 IRQ。

    ~]# cat /proc/interrupts

    每行显示 IRQ 号、每个 CPU 中出现的中断数,后面是 IRQ 类型和描述。

             CPU0       CPU1
    0:   26575949         11         IO-APIC-edge  timer
    1:         14          7         IO-APIC-edge  i8042
  2. 将 CPU 掩码写入特定 IRQ 的 smp_affinity 条目。CPU 掩码必须表示为十六进制数字。

    例如,以下命令指示 IRQ 编号 142 仅在 CPU 0 上运行。

    ~]# echo 1 > /proc/irq/142/smp_affinity

    只有在发生中断时,更改才会生效。

验证步骤

  1. 执行将触发指定中断的活动。
  2. 检查 /proc/interrupts 是否有变化。

    配置 IRQ 的指定 CPU 上的中断数量增加,指定关联性外配置的 IRQ 中断数不会增加。