小编Sat*_*urn的帖子

处理器中断而另一个进程正在旋转以进行锁定

我的代码中有一个自旋锁,它在两个线程之间共享.当一个线程持有锁而另一个线程试图获得锁定时,第二个线程将继续在处理器上旋转.那么,如果线程正在旋转锁定的处理器上发生中断,会发生什么?

我习惯spin_lock()拿锁而不是spin_lock_irqsave()因为我不想在本地处理器上禁用中断.

当我检查spin_lock()内核中函数的代码时,我发现默认情况下禁用抢占,而不是任何IRQ.所以我假设中断将优先于旋转线程.那么自旋锁是非睡眠锁的意义是什么?

c linux-device-driver linux-kernel spinlock

7
推荐指数
1
解决办法
431
查看次数

标签 统计

c ×1

linux-device-driver ×1

linux-kernel ×1

spinlock ×1