首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核创建的线程的亲和力能由"cpuset“设置吗?

内核创建的线程的亲和力能由"cpuset“设置吗?
EN

Stack Overflow用户
提问于 2020-05-21 11:01:56
回答 1查看 970关注 0票数 1

用户进程的亲缘关系可以由cpuset(7)设置。

可以通过cpuset(7)设置内核创建的线程的亲和力吗?

我发现cpuset确实(rcu_sched,rcu_bh)可以设置某些k线程的亲缘关系,有些k线程不能设置(nvme wq,k线程d,我得到了错误:“echo:写错误:无效参数”)。

如果你有更好的解决办法,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-21 16:00:37

cpuset(7)是一个一般描述Linux的手册页面。如页面所述,您可以使用sched_setaffinity(2) syscall将任务限制为特定的CPU集。

sched_setaffinity(2)是一个syscall这一事实应该已经让您注意到,该功能是用于用户空间使用的。如果您正在编写内核代码,内核线程有不同的内部API(参见kthread.h):

  • kthread_bind(),,它可用于将线程绑定到由其数字ID指定的单个CPU。
  • kthread_bind_mask(),可用于将该线程绑定到由struct cpumask定义的一个或多个CPU。您可以通过struct cpumask来初始化正确的cpumask_set_cpu()。此API类似于sched_setaffinity(2) syscall,但适用于klines.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61933008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档