我正在编写一个Linux内核模块,需要在两个不同的cpus上固定两个线程。我计划在内核中导出后使用sched_setaffinity()。是否还有其他导出函数?
另外,如果我在cpumask中只设置了1个CPU,那么该线程是否会立即转移到该cpu?如果没有,我该如何强制执行相同的操作?在sched_setaffinity()之后调用schedule()会有帮助吗?
答案 0 :(得分:2)
sched_setaffinity
的手册页说
如果
pid
指定的进程当前未在mask
中指定的某个CPU上运行,则该进程将迁移到mask
中指定的其中一个CPU。
我的解释是,在调用sched_setaffinity
之前,此迁移会立即发生。