2001 Linux Symposium
navigation

paper abstract

related

keynote
speakers
bofs
tutorials
schedule
sponsors
2002 home

Read-Copy Update

Traditional operating-system locking designs tend to either be very complex, result in poor concurrency, or both. These traditional locking designs fail to take advantage of the event-driven nature of operating systems, which process many small, quickly completed units of work (in contrast to CPU-bound software such as scientific applications). This event-driven nature can often be exploited by splitting updates into the two phases: 1) carrying out enough of each update for new requests to see the new state, while still allowing existing requests to proceed on the old state, then: 2) completing the update after all active requests have completed. Common-case code can then proceed without disabling interrupts or acquiring any locks to protect against the exceptional code, which simplifies locking protocols, improves uniprocessor performance, and increases scalability. Examples of the application of these techniques include maintaining read-mostly data structures, such as routing tables, avoiding the need for existence locks (and hence avoiding locking hierarchies with the attendant deadlock issues), and dealing with unusual situations like module unloading.
transcripts
pictures
audio
 
2004
2003
2002
2001
2000
1999

© 2000 Linux Symposium.  All Rights Reserved.