进程上下文和计时器功能之间的同步

时间:2018-10-22 17:27:44

标签: c linux timer linux-kernel spinlock

我想在进程上下文(具体来说是queuecommand函数)和计时器函数中自动更新数据结构。在过程上下文中,我应该使用spin_lock_bh还是spin_lock_irq还是仅使用spin_lock

据我了解,我们应该在队列命令(进程上下文)中使用spin_lock_bh,在计时器函数中仅使用spin_lock。我说得对吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,那就是关于timer_listbottom half context)的内容。那么您的假设是正确的:是的,在计时器上下文中使用 spin_lock_bh spin_lock处理程序 ({{1}中的function)。但这仅是 ,只要该锁 (以及相应的数据结构)仅在提到的上下文中使用 没有使用它的中断处理程序 。如果是这样,您需要timer_list

还请记住,您不应该在spin_lock_irq-spin_lock*内使用可睡眠功能。

Linux内核源代码中有很多示例,例如: