Kernel 为什么RCU设计用于保护指针分配?

Kernel 为什么RCU设计用于保护指针分配?,kernel,rcu,Kernel,Rcu,我想知道为什么RCU设计用于保护指针分配和访问。如果rcu\U read\U lock用于保护正常可变访问,会发生什么情况?“如果rcu\U read\U lock用于保护正常可变访问”-仅其自身,rcu read\U lock不提供保护。多个进程/线程可以同时位于RCU部分内。这与例如自旋锁相反:一个节中最多可以有一个进程/线程,由特定的自旋锁对象保护。@Tsyvarev那么为什么rcu只保护指针值本身,而不保护指针指向的内存访问。rcu希望受保护指针指向的内存不会更改。因此,任何拥有指向该内

我想知道为什么RCU设计用于保护指针分配和访问。如果rcu\U read\U lock用于保护正常可变访问,会发生什么情况?

“如果rcu\U read\U lock用于保护正常可变访问”-仅其自身,
rcu read\U lock
不提供保护。多个进程/线程可以同时位于RCU部分内。这与例如自旋锁相反:一个节中最多可以有一个进程/线程,由特定的自旋锁对象保护。@Tsyvarev那么为什么rcu只保护指针值本身,而不保护指针指向的内存访问。rcu希望受保护指针指向的内存不会更改。因此,任何拥有指向该内存的指针并持有RCU读锁的人都可以同时读取该内存。RCU更新数据的方法是:1。读取现有数据。2.将这些数据复制到其他内存中。3.更新(修改)其他内存。4.将指向现有数据的指针替换为指向其他内存的指针。