Next:
10.3.1 RCU Fundamentals
Up:
10. Deferred Processing
Previous:
10.2.3 Counter Optimizations
Contents
10
.
3
Read-Copy Update (RCU)
Subsections
10
.
3
.
1
RCU Fundamentals
10
.
3
.
1
.
1
Publish-Subscribe Mechanism
10
.
3
.
1
.
2
Wait For Pre-Existing RCU Readers to Complete
10
.
3
.
1
.
3
Maintain Multiple Versions of Recently Updated Objects
10
.
3
.
1
.
3
.
1
Example 1: Maintaining Multiple Versions During Deletion
10
.
3
.
1
.
3
.
2
Example 2: Maintaining Multiple Versions During Replacement
10
.
3
.
1
.
3
.
3
Discussion
10
.
3
.
1
.
4
Summary of RCU Fundamentals
10
.
3
.
2
RCU Usage
10
.
3
.
2
.
1
RCU is a Reader-Writer Lock Replacement
10
.
3
.
2
.
1
.
1
Performance
10
.
3
.
2
.
1
.
2
Deadlock Immunity
10
.
3
.
2
.
1
.
3
Realtime Latency
10
.
3
.
2
.
1
.
4
RCU Readers and Updaters Run Concurrently
10
.
3
.
2
.
1
.
5
Low-Priority RCU Readers Can Block High-Priority Reclaimers
10
.
3
.
2
.
1
.
6
RCU Grace Periods Extend for Many Milliseconds
10
.
3
.
2
.
1
.
7
Comparison of Reader-Writer Locking and RCU Code
10
.
3
.
2
.
2
RCU is a Restricted Reference-Counting Mechanism
10
.
3
.
2
.
3
RCU is a Bulk Reference-Counting Mechanism
10
.
3
.
2
.
4
RCU is a Poor Man's Garbage Collector
10
.
3
.
2
.
5
RCU is a Way of Providing Existence Guarantees
10
.
3
.
2
.
6
RCU is a Way of Providing Type-Safe Memory
10
.
3
.
2
.
7
RCU is a Way of Waiting for Things to Finish
10
.
3
.
2
.
8
RCU Usage Summary
10
.
3
.
3
RCU Linux-Kernel API
10
.
3
.
3
.
1
RCU has a Family of Wait-to-Finish APIs
10
.
3
.
3
.
2
RCU has Publish-Subscribe and Version-Maintenance APIs
10
.
3
.
3
.
3
Where Can RCU's APIs Be Used?
10
.
3
.
3
.
4
So, What
is
RCU Really?
10
.
3
.
4
``Toy'' RCU Implementations
10
.
3
.
4
.
1
Lock-Based RCU
10
.
3
.
4
.
2
Per-Thread Lock-Based RCU
10
.
3
.
4
.
3
Simple Counter-Based RCU
10
.
3
.
4
.
4
Starvation-Free Counter-Based RCU
10
.
3
.
4
.
5
Scalable Counter-Based RCU
10
.
3
.
4
.
6
Scalable Counter-Based RCU With Shared Grace Periods
10
.
3
.
4
.
7
RCU Based on Free-Running Counter
10
.
3
.
4
.
8
Nestable RCU Based on Free-Running Counter
10
.
3
.
4
.
9
RCU Based on Quiescent States
10
.
3
.
4
.
10
Summary of Toy RCU Implementations
10
.
3
.
5
RCU Exercises
Paul E. McKenney 2011-12-16