【发布时间】:2014-04-08 13:07:23
【问题描述】:
在linux内核中,文件arch/arm/mach-exynos/cpuidle.c中有如下代码:
local_irq_disable();
cpu_do_idle();
local_irq_enable();
cpu_do_idle 在哪里
dsb
wfi
mov pc, lr
在cpu_do_idle 中,它执行代表等待中断的'wfi' 命令。 但是,我不明白的是它在禁用irq后进入cpu_do_idle。 这是怎么发生的?
【问题讨论】:
-
local_irq_disable() 禁用该特定处理器上的中断,但它不会停止其他处理器上的中断。因此,当其他处理器发生任何中断时,cpu 将退出空闲状态。
-
你的意思是从其他处理器到这个处理器的中断(如IPI)?
-
你能分享cpu_do_dle()代码的链接吗,之后我只能说。但我确信这不是 IPI,这是一个非常具体的概念。
-
我已经编辑了问题