gpt4 book ai didi

Linux - 在 SMP ARM 上的定时器、tasklet 和 kthread 之间锁定

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:04 27 4
gpt4 key购买 nike

我有一些数据在 SMP ARM 上的 tasklet、计时器和 kthread 之间共享。使用什么类型的自旋锁是正确的?

根据 Cheat Sheet For Locking ,似乎常规的 spin_lock()/spin_unlock() 就可以完成这项工作。但由于这纯粹是下半部分,难道 spin_lock_bh() 还不够吗?

谢谢!

最佳答案

你需要在这里使用 spin_lock_bh 因为你在 tasklet 和 kthread 之间共享一个数据结构。

仅使用自旋锁可能会导致死锁:

  1. kthread 获取锁
  2. 中断发生
  3. softirq 在离开 irq 上下文后运行
  4. 你的 tasklet 运行
  5. tasklet 尝试获取锁

关于Linux - 在 SMP ARM 上的定时器、tasklet 和 kthread 之间锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36522134/

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