默认将所有线程归为核心

Default all threads to a core?

本文关键字:核心 线程 默认      更新时间:2023-10-16

i指定了带有核心2-11的cpuset x,taskset -cpu-list 2。

似乎我在用cpuset x嵌套的任务集运行一个过程,然后sched_getaffinity()只看到可用的core#2可用。

我的问题是有一种方法可以实现以下内容:
- 默认一个过程中的所有线程到1个核心,
- 该过程是由CPUSET"保护"的(因此,没有其他过程将使用指定的内核)和
- 我仍然可以通过编程方式设置某些线程的CPU亲和力(我知道如何使用pthread_attr_setaffinity_np())?

预先感谢。

让我以这种方式提出您的问题,您希望您的过程在其中一个内核上运行并防止其他过程在其上运行吗?在这种情况下,您应该引用命令isolcpus

通过在启动时间内使用参数isolcpus,您可以将一个或多个CPU与内核调度程序隔离,除非使用使用CPU亲和力的过程/线程请求使用隔离的CPU。(参考 - http://www.linuxtopia.org/online_books/linux_kernel/kernel_kernel_configuration/re46.html,以及全部核心,专门用于单个过程)