我正在进行驱动程序的性能提升,并且应该考虑死锁的可能性。在SoftIRQ上下文中,spin_lock将被保持并保护一些变量。在这种情况下,我应该使用spin_lock还是spin_lock_bh?spin_lock_bh听起来更安全,但我有一个关于SoftIRQ实现的一般问题。
- 相同的softIRQ函数在执行SoftIRQ期间可以在同一CPU上调度 -> 我们需要在SoftIRQ中使用spin_lock_bh
- 相同的softIRQ函数可以在其他CPU上调度,但不是同一CPU -> 我们可以在SoftIRQ中使用spin_lock