McKenney: What Does It Mean To Be An RCU Implementation?

Post Syndicated from original https://lwn.net/Articles/921351/

Paul McKenney looks at
a couple of Rust crates
in an attempt to determine whether they
actually implement the read-copy-update algorithm; in the process, he gives
an overview of the numerous RCU variants in the kernel.

Except that the first RCU crate, rcu_clean, throws a monkey wrench
into the works. It does not have any grace-period primitives, but
instead a clean() function that takes a reference to a
RCU-protected data item. The user invokes this at some point in
the code where it is known that there are no readers, either within
this thread or anywhere else. In true Rust fashion, in some cases,
the compiler is able to prove the presence or absence of readers
and issue a diagnostic when needed.