我的代码中有一个自旋锁,它在两个线程之间共享.当一个线程持有锁而另一个线程试图获得锁定时,第二个线程将继续在处理器上旋转.那么,如果线程正在旋转锁定的处理器上发生中断,会发生什么?
我习惯spin_lock()拿锁而不是spin_lock_irqsave()因为我不想在本地处理器上禁用中断.
spin_lock()
spin_lock_irqsave()
当我检查spin_lock()内核中函数的代码时,我发现默认情况下禁用抢占,而不是任何IRQ.所以我假设中断将优先于旋转线程.那么自旋锁是非睡眠锁的意义是什么?
c linux-device-driver linux-kernel spinlock
c ×1
linux-device-driver ×1
linux-kernel ×1
spinlock ×1