对于Linux RCU,在宽限期内,新编写器是否可能更新新数据?

时间:2017-08-02 02:29:44

标签: linux-kernel lock-free mutual-exclusion rcu

我是Linux的新手并且正在学习RCU部分。我看到在操作过程中有一段宽限期。只是想知道一些新作家是否想在宽限期内更新数据,是否可能?我想有两种方法:

  1. 在宽限期内,它带有写锁定

  2. RCU可以在RCU上工作,这意味着它在旧的RCU上创建一个新的RCU,等待新的RCU完成,然后旧的RCU结束宽限期。

  3. Linux的哪种方式正确?

1 个答案:

答案 0 :(得分:1)

  

只想知道某个新的编写者是否要在宽限期内更新数据,这可能吗?

是的,有可能。作家不必等待宽限期结束。另外,宽限期对于恢复阶段很重要(简单来说,移除后,我们正在等待能够访问数据的读者(移除前)完成操作使用它并退出关键部分,例如通过rcu_read_unlock(),然后我们可以释放它)。

除了基于 RCU支持单个更新程序和多个阅读器之间的并发性 这一事实之外,RCU也不是什么问题。因此,如果您有多个更新程序,则应该应用适当的锁定。

RCU通常与自旋锁一起使用,以解决更新程序之间的并发问题。因此,您可以在Linux内核源代码中看到一些将RCU与多个更新程序一起使用的清晰示例。

有用的链接: