我正在努力提高驱动程序的性能,并应考虑死锁的可能性。在SoftIRQ上下文中,spin_lock将被保留并保护一些变量。在这种情况下,我应该使用spin_lock还是spin_lock_bh? spin_lock_bh听起来更安全,但我有一个关于SoftIRQ实现的一般性问题。
上述陈述的真实情况是什么?
答案 0 :(得分:1)
来自Linux Kernel Development(第2版):
softirq永远不会抢占另一个softirq。
原因很简单:在softIRQ期间软件中断被禁用。
因此在softIRQ函数中使用普通spin_lock()
就足够了。