19.4. 手动将 CPU 关联性分配给单个 IRQ
分配 CPU 关联性可让将进程和未绑定进程和线程绑定到指定的 CPU 或 CPU 范围。这可减少缓存问题。
流程
通过查看
/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将 CPU 掩码写入特定 IRQ 的
smp_affinity条目。CPU 掩码必须以十六进制数字表示。例如,以下命令指示 IRQ 编号 142 仅在 CPU 0 上运行。
# echo 1 > /proc/irq/142/smp_affinity更改仅在中断发生时生效。
验证
- 执行触发指定中断的活动。
检查
/proc/interrupts的更改。配置的 IRQ 的指定 CPU 上的中断数量会增加,且在指定关联性外的 CPU 上配置的 IRQ 的中断数量不会增加。