使 IRQ SMP Affinity 更改永久化

Phi*_*lip 6 debian interrupt smp

我必须永久更改中断的 smp_affinity。服务器重启时需要执行以下代码:

echo "1" > /proc/irq/152/smp_affinity_list
echo "2" > /proc/irq/151/smp_affinity_list
echo "3" > /proc/irq/150/smp_affinity_list
echo "4" > /proc/irq/149/smp_affinity_list
echo "5" > /proc/irq/148/smp_affinity_list
echo "6" > /proc/irq/147/smp_affinity_list
echo "7" > /proc/irq/146/smp_affinity_list
echo "8" > /proc/irq/145/smp_affinity_list
echo "9" > /proc/irq/144/smp_affinity_list
echo "10" > /proc/irq/143/smp_affinity_list
echo "11" > /proc/irq/142/smp_affinity_list
echo "12" > /proc/irq/141/smp_affinity_list
echo "13" > /proc/irq/140/smp_affinity_list
echo "14" > /proc/irq/139/smp_affinity_list
echo "15" > /proc/irq/138/smp_affinity_list
echo "16" > /proc/irq/137/smp_affinity_list
Run Code Online (Sandbox Code Playgroud)

我已将这些行添加到 /etc/rc.local 文件中,但更改并未应用于系统。我还添加了 echo "test" > /root/test ,它被正确执行,所以 rc.local 文件被执行。系统运行的是 Debian 6.0。

小智 1

该rc.local脚本应该是启动时最后执行的。假设它没有在系统中最后运行,那么它可能运行得太早,/proc甚至在安装之前。或者,如果由内核模块管理的内核模块在运行smp_affinity_list时仍未加载,则可能是模块化内核上的问题。rc.local

因此,只需更改您的并在回显之前rc.local检查是否存在。/proc/irq/*/smp_affinity_list否则sleep一段时间后重试,最终通过logger命令发出错误消息,以便您能够在/var/log/syslog.