User-Level Implementations of Read-Copy Update
- Added on 2024-03-27
- Page: https://www.efficios.com/pub/rcu/urcu-main.pdf
- See on Internet Archive
- #rcu #memory
Read-copy update (RCU) is a synchronization technique that often replaces reader-writer locking because RCU’s read-side primitives are both wait-free and an order of magnitude faster than uncontended locking. Although RCU updates are relatively heavy weight, the importance of read-side performance is increasing as computing systems become more responsive to changes in their environments.
RCU is heavily used in several kernel-level environments. Unfortunately, kernel-level implementations use facilities that are often unavailable to user applications. The few prior userlevel RCU implementations either provided inefficient readside primitives or restricted the application architecture. This paper fills this gap by describing efficient and flexible RCU implementations based on primitives commonly available to userlevel applications.
Finally, this paper compares these RCU implementations with each other and with standard locking, which enables choosing the best mechanism for a given workload. This work opens the door to widespread user-application use of RCU.