为什么sched_setaffinity在一个系统上工作,而在另一个系统上失败?

时间:2018-12-21 08:57:57

标签: linux multiprocessing

我有两块带有不同ARM CPU的板,一个2x内核-运行Linux内核4.1.x,另一个4x内核-运行3.10。 在这些Linux安装中,我始终以root用户身份登录。 在程序中,我通过sched_setaffinity(0,...)设置了调用进程的CPU关联性,就像here一样,只是我始终将其始终设置为cpu 1。 在Linux 4.1上,它可以按预期工作。 Linux 3.1给我一个负的返回值,并在perror(..)上显示“ Invalid arguments”。

为什么会这样?四核肯定有CPU 1?

1 个答案:

答案 0 :(得分:0)

其他CPU内核默认未启用。

如果按照说明的here启用了它们(但是写1而不是0),则可以。

#echo 1 > /sys/devices/system/cpu/cpu1/online