4

有什么办法可以防止linux内核将线程迁移到其他cpu?使用 hwloc(它又使用 pthread_setaffinity_np),我将线程绑定到核心。但是,有时我会看到内核启动了昂贵的迁移任务。有什么办法可以阻止内核这样做吗?我没有在 hwloc / pthreads 库中找到任何标志,也没有将 kernel/sched_nr_migrate 设置为 0 导致所需的行为。任何建议都受到高度赞赏。谢谢

4

1 回答 1

0

您可以设置进程(而不是线程)的 CPU 亲和性,据我了解,内核将努力尊重这一点。如果您希望特定进程产生的所有线程在同一个 CPU 上运行,那么这是一个可以接受的解决方案。

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

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

于 2012-12-28T20:38:15.190 回答