Read Copy Update HOWTO
Author: Paul E. McKenney firstname.lastname@example.org
Date: Tue Jun 23 17:12:47 2009 -0700
rcu: Remove Classic RCU
Brief Overview of Classic RCU Implementation
URCU: any period of time during which each reader thread resides in at least one quiescent state is called a grace period.
Start a New Grace Period
… after each CPU has passed through at least one quiescent state, the RCU grace period ends.
… after all the CPUs in the system have gone through at least one “quiescent” state (such as context switch, idle loop, or user code)
URCU: Any line of code not in an RCU read-side critical section is termed a quiescent state
The rcu and rcu_bh flavors of RCU have different sets of quiescent states.
Using Quiescent States to Reclaim Memory
granularity of waiting
The great advantage of RCU … without having to explicitly track each and every one of them
In RCU’s case, the things waited on are called “RCU read-side critical sections”. ditto.
The 1st: Read-copy-update for realtime Papper
The design of preemptible read-copy-update
The RCU implementation for the -rt patchset is unusual in that it permits read-side critical sections to be preempted and to be blocked waiting for locks. However, it does not handle general blocking (for example, via the wait_event() primitive): if you need that, you should instead use SRCU.
RCU-preempt: What happens on a context switch
+#define RCU_READ_UNLOCK_NEED_QS (1 << 2) /* RCU core needs CPU response. */
Tiny RCU / RCU: The Bloatwatch Edition
Tree RCU / Hierarchical RCU
Tree RCU Grace Period Memory Ordering Components
A Tour Through TREE_RCU’s Data Structures
A Tour Through TREE_RCU’s Expedited Grace Periods
Tree preempt RCU: 3.0 and RCU: what went wrong
Priority-Boosting RCU Read-Side Critical Sections
Decoding Those Inscrutable RCU CPU Stall Warnings