我的代码中有一个自旋锁,它在两个线程之间共享。当一个线程持有锁而另一个线程试图获得锁时,第二个线程将继续在处理器上旋转。那么如果在线程正在旋转锁的处理器上发生中断,会发生什么?另一个进程在旋转锁定时处理器上的中断
我已经使用spin_lock()
来取锁而不是spin_lock_irqsave()
,因为我不想在本地处理器上禁用中断。
当我在内核中检查spin_lock()
函数的代码时,我发现默认情况下禁用抢占并且没有任何IRQ。所以我认为中断将优先于纺线。那么自旋锁是一个非睡眠锁的意义是什么?
在中断服务程序返回后它会继续旋转吗? – joop