硬件中断是否可以抢占保留自旋锁的进程(禁用抢占)?

时间:2016-10-29 09:11:05

标签: c interrupt spinlock

有人问过类似的问题:

How does Kernel handle the lock in process context when an interrupt comes?

但是目前还不清楚,当Interrupt进入一个CPU并且进程正在同一个CPU上执行并且保持了自旋锁。可以中断抢占持有自旋锁的进程。 ?应该是因为我们有spin_lock_irq来禁用中断。

这意味着,当禁用内核抢占并且中断到来时,中断可以抢占进程并开始正确执行吗?

任何人都可以澄清这一点。我想我在这里缺少一点。

由于 Gururaj

1 个答案:

答案 0 :(得分:0)

是的,中断将抢占您的锁保持代码。

处理中断并跳转到IDT中的中断向量的CPU硬件不知道或不在乎正在运行什么代码或拥有什么锁。它将抢占一切,甚至其他中断处理程序。