Title :
User-Level Implementations of Read-Copy Update
Author :
Desnoyers, Mathieu ; McKenney, Paul E. ; Stern, Alan S. ; Dagenais, Michel R. ; Walpole, Jonathan
Author_Institution :
EfficiOS, Inc., Montreal, QC, Canada
Abstract :
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 user-level RCU implementations either provided inefficient read-side primitives or restricted the application architecture. This paper fills this gap by describing efficient and flexible RCU implementations based on primitives commonly available to user-level 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.
Keywords :
operating systems (computers); RCU read-side primitives; kernel-level environments; read-copy update; reader-writer locking; synchronization technique; user-level RCU implementations; Data structures; Instruction sets; Kernel; Linux; Materials; Scalability; Synchronization; Synchronization; concurrency.; operating systems; process management; software/software engineering; threads;
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
DOI :
10.1109/TPDS.2011.159