使用sched_setaffinity()立即对cpumask进行更改

时间:2010-04-01 10:01:20

标签: multithreading linux-kernel affinity

我正在编写一个Linux内核模块,需要在两个不同的cpus上固定两个线程。我计划在内核中导出后使用sched_setaffinity()。是否还有其他导出函数?

另外,如果我在cpumask中只设置了1个CPU,那么该线程是否会立即转移到该cpu?如果没有,我该如何强制执行相同的操作?在sched_setaffinity()之后调用schedule()会有帮助吗?

1 个答案:

答案 0 :(得分:2)

sched_setaffinity的手册页说

  

如果pid指定的进程当前未在mask中指定的某个CPU上运行,则该进程将迁移到mask中指定的其中一个CPU。

我的解释是,在调用sched_setaffinity之前,此迁移会立即发生。