中断和自旋锁

时间:2014-11-26 14:18:56

标签: linux linux-kernel operating-system spinlock

我了解在中断处理程序中获取interrupts时禁用spinlocks

我对在spinlock中保留process context并在那一刻发生中断时会发生什么感到疑问?

这种情况会发生吗?

根据我的理解,如果发生这样的情况,处理程序也试图获取进程上下文中保持的相同lock,它将继续为该锁定旋转。

在获取spinlock时,我们总是禁用中断吗?

1 个答案:

答案 0 :(得分:-1)

旋转是旋转锁的用途。

当中断发生在另一个CPU上时,它只会旋转直到解锁进程上下文锁定。

当中断发生在同一个CPU上时,它会永远旋转。这就是为什么你应该在进程上下文中进行自旋锁时禁用中断,以及中断处理程序是否也使用相同的锁。

(通常不需要在中断上下文中进行自旋锁定时禁用中断,因为中断处理程序不能自行中断。)