gpt4 book ai didi

linux - Linux 中的 raw_spin_lock 是否禁用 hrtimer 中断?

转载 作者:太空狗 更新时间:2023-10-29 11:46:13 29 4
gpt4 key购买 nike

在一个处理器上,在同一个线程中,首先调用 raw_spin_lock(),然后它启动一个 hrtimer 并再次返回到 raw_spin_lock(),它将在那里自旋。在hrtimer中断处理函数中,会调用raw_spin_unlock()。

这会不会导致死锁?旋转 raw_spin_lock() 会禁用中断吗?

最佳答案

raw_spin_lock_irq()raw_spin_lock_irqsave() 禁用本地中断,但是其他 CPU 上的中断仍然可能发生。 raw_spin_lock() 没有。

如果任何中断处理程序试图锁定已持有的自旋锁,则在启用本地中断的情况下粗心地使用自旋锁可能会导致死锁。出于同样的原因,我提到的所有功能都不是可重入的。锁拥有者永远不可能释放锁。但是,由于在这种情况下 ISR 会释放锁,死锁应该不是问题。

我认为您还应该查看完成变量,这些变量旨在以这种不寻常的方式使用自旋锁来完成您似乎试图完成的事情。参见 this还有函数 wait_on_completion(_interruptible)(_timeout)() here .

可以找到关于自旋锁的更多信息here .

关于linux - Linux 中的 raw_spin_lock 是否禁用 hrtimer 中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790392/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com