Linux can';将进程锁定到使用联机标志重新启用的核心
我想使用Linux shell禁用其中一个内核,因此我使用了以下命令:Linux can';将进程锁定到使用联机标志重新启用的核心,linux,cpu,affinity,Linux,Cpu,Affinity,我想使用Linux shell禁用其中一个内核,因此我使用了以下命令: echo 0 | sudo tee /sys/devices/system/cpu/cpu63/online echo 1 | sudo tee /sys/devices/system/cpu/cpu63/online 它出现在使用lscpu的脱机内核中,我无法再使用sched_setaffinity方法在该内核上设置任何线程。所以它成功了。但是,现在我想使用以下命令再次启用此核心: echo 0 | sudo tee
echo 0 | sudo tee /sys/devices/system/cpu/cpu63/online
echo 1 | sudo tee /sys/devices/system/cpu/cpu63/online
它出现在使用lscpu
的脱机内核中,我无法再使用sched_setaffinity
方法在该内核上设置任何线程。所以它成功了。但是,现在我想使用以下命令再次启用此核心:
echo 0 | sudo tee /sys/devices/system/cpu/cpu63/online
echo 1 | sudo tee /sys/devices/system/cpu/cpu63/online
在lscpu
中,我在在线内核中看到了这个内核。然而,当试图在同一个内核中调用sched_setaffinity
时,结果是-1。在禁用core之前,此方法工作正常。此外,我无法通过lstopo
看到此核心,它不再出现在NUMA中
我正在skylake服务器上使用两个NUMA进行测试
重新启动后,这个核心当然会出现,但为什么启用命令不起作用呢?或者我还需要做些什么才能使其正常工作?我试图在代码中使用sched_setaffinity,但它不起作用,因为重新启用core显然无法正常工作,并且该过程无法将core视为在线。为什么这与编程无关?我试图在我的代码中使用sched_setaffinity,这不起作用,因为重新启用core显然无法正常工作,并且该过程不会将core视为在线。为什么这与编程无关?