gpt4 book ai didi

linux - SoftIRQ 是否可以提示当前正在运行与 Linux 内核相同的 SoftIRQ?

转载 作者:太空狗 更新时间:2023-10-29 12:25:40 25 4
gpt4 key购买 nike

我正在研究驱动程序的性能改进,应该考虑死锁的可能性。在 SoftIRQ 上下文中,spin_lock 将被持有并保护一些变量。在这种情况下,我应该使用 spin_lock 还是 spin_lock_bh? spin_lock_bh 听起来更安全,但我有一个关于 SoftIRQ 实现的一般性问题。

  • SoftIRQ执行期间可以在同一个CPU上调度同一个softIRQ函数->我们需要在SoftIRQ中使用spin_lock_bh
  • 可以在其他 CPU 上调度相同的 softIRQ 函数,但不是同一个 CPU -> 我们可以在 SoftIRQ 中使用 spin_lock

以上说法正确的是什么?

最佳答案

来自 Linux Kernel Development (第 2 版):

A softirq never preempts another softirq.

原因很简单:在 softIRQ 期间,软件中断被禁用

因此在 softIRQ 函数中使用普通 spin_lock() 就足够了。

关于linux - SoftIRQ 是否可以提示当前正在运行与 Linux 内核相同的 SoftIRQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41644621/

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