我正在编写一个
Linux内核模块,需要在两个不同的cpus上固定两个线程.我计划在内核中导出后使用sched_setaffinity().是否还有其他导出函数?
另外,如果我在cpumask中只设置了1个CPU,那么线程是否会立即移动到该cpu?如果没有,我该如何强制执行相同的操作?在sched_setaffinity()之后调用schedule()会有帮助吗?
最佳答案 sched_setaffinity的手册页说
If the process specified by
pid
is not currently running on one of the CPUs specified inmask
, then that process is migrated to one of the CPUs specified inmask
.
我的解释是,在调用sched_setaffinity返回之前,此迁移会立即发生.