linux - 由 rcu 保护的多个列表

标签 linux linux-kernel rcu

你好,

我是 linux 内核中 rcu 锁定机制的新手。

在尝试了解 rcu 的工作原理和提供的 API 时,我看到 rcu_read_lock()、rcu_synchronize() 不采用任何锁实例。那么,假设我有 n 个我想使用 RCU 保护的独立列表,读取和 synchronise() 是否保证按预期工作?

如果这个问题看起来太天真了,请原谅我

提前致谢。

最佳答案

不依赖互斥锁是使用 RCU(读取、复制、更新)的主要好处之一。每个 rcu_read_lock() 将确保在执行其 rcu_read_unlock() 之前,本地读取的数据不会被修改。 synchronize_rcu() 将阻塞所有前面的读取器以同步数据结构。

关于linux - 由 rcu 保护的多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461410/

相关文章:

linux - tty 核心流字符

linux-kernel - 是否可以通过 RCU 保护 _____ nf_conntrack find() 返回值?

linux-kernel - 为什么 list_add_rcu 只保护 "prev->next"?

c - rcu_read_locks 的嵌套

linux - 每半小时检查一次,看看if条件是否为真

linux - Docker 容器的运行时性能成本是多少?

linux - 没有窗口/gui 的源代码

python - 标准输出 pymssql 到变量

c - numaif.h : MPOL_LOCAL undeclared for use in mbind

linux - 当系统内存大于 8GB 时,为什么 linux 禁用磁盘写缓冲区?