sched_setaffinity()只需告诉调度程序允许该进程/线程在哪个CPU上运行,然后调用重新调度即可。
调度程序实际上在每个CPU上运行,因此有机会决定在该特定CPU上下一步执行什么任务。
如果您对如何在其他CPU上实际调用某些代码感兴趣,建议您参考一下
smp_call_function_single()。如果我们要在另一个CPU上调用某个东西,则调用
generic_exec_single()。后者只是将函数添加到目标CPU的调用队列中,并通过一些IPI东西(如果队列为空)来强制重新计划。
底线是:该
_jmp_指令没有实际的SMP变体。相反,在其他CPU上运行的代码可以协作完成任务。



