有任何方法可以阻止linux内核将线程迁移到其他cpu

时间:2012-12-13 17:40:04

标签: linux-kernel pthreads

有什么方法可以阻止linux内核将线程迁移到其他cpus? 使用hwloc(后者又使用pthread_setaffinity_np),我将线程绑定到核心。但是,有时我发现内核启动了昂贵的迁移任务。有什么方法可以阻止内核这样做吗?我没有在hwloc / pthreads库中找到任何标志,也没有将kernel / sched_nr_migrate设置为0导致所需的行为。 任何建议都非常感谢。感谢

1 个答案:

答案 0 :(得分:0)

您可以设置进程(而不是线程)的CPU亲和性,并且根据我的理解,内核将尝试真正难以尊重。如果您希望特定进程生成的所有线程在同一CPU上运行,那么这是一个可接受的解决方案。

以下是来自IBM的一篇文章,它提供了一些额外的背景和特定的系统调用:

http://www.ibm.com/developerworks/library/l-affinity/index.html