多线程 – 使用sched_setaffinity()立即对cpumask进行更改

我正在编写一个
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 in mask, then that process is migrated to one of the CPUs specified in mask.

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

点赞