我是 Linux 内核的新手。目前,我查看了空闲代码并有一个问题。当处理器在自己的运行队列中没有任何任务时,它可能会进入空闲模式,特定的 WFI(等待中断)。(我提到的只是关于 ARM 架构而不是 X86。所以 X86 出了点问题。)在保持 WFI 状态之后,也许其他处理器(不是空闲的)想要将他们的任务分散到这个空闲的处理器上(通过负载平衡)。当时一个繁忙的处理器使任务迁移。在我看来,迁移任务时,空闲处理器应该立即唤醒以处理任务。正确的?但是,我找不到任何唤醒空闲处理器的代码,但只找到了有关将任务注册到空闲处理器的运行队列的代码。
我想知道在给出新任务时唤醒处理器背后的机制是什么。或者它只是将任务从一个队列移动到另一个队列,而不是让它直到被一些不可预测的 IRQ 唤醒?
请告诉我真相:)