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

Multithreading 是否立即使用sched_setaffinity()对cpumask进行更改,multithreading,linux-kernel,affinity,Multithreading,Linux Kernel,Affinity,我正在编写一个linux内核模块,它需要在两个不同的CPU上固定两个线程。我计划在内核中导出sched_setaffinity()后使用它。是否有其他导出函数用于相同的功能 另外,如果我在cpumask中只设置了1个CPU,线程会立即移动到该CPU吗?如果没有,我如何执行相同的操作?在sched_setaffinity()之后调用schedule()会有帮助吗?sched_setaffinity的手册页上说 如果pid指定的进程当前未在mask中指定的一个CPU上运行,则该进程将迁移到mask中

我正在编写一个linux内核模块,它需要在两个不同的CPU上固定两个线程。我计划在内核中导出sched_setaffinity()后使用它。是否有其他导出函数用于相同的功能


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

sched_setaffinity的手册页上说

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

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

这有帮助吗?