= Read-Copy Update (RCU) = RCU is a synchronization mechanism that is used in the Linux kernel to replace some uses of reader-writer locking and reference counting. The concepts behind RCU are quite simple: At its core, RCU is just a way of waiting for things to get done. However, effective use of RCU does require that you think about concurrency in a different way. RCU is only recently being added to university coursework, but fortunately there is quite a bit of documentation available: * Documentation/RCU/ in the Linux-kernel source tree. * A number of [[https://lwn.net|LWN]] articles, including: * [[http://lwn.net/Articles/262464/|What is RCU, Fundamentally?]] * [[http://lwn.net/Articles/263130/|What is RCU's Usage?]] * [[http://lwn.net/Articles/418853/|The RCU API, 2010 Edition.]] * [[http://lwn.net/Articles/202847/|Sleepable RCU.]] * [[http://doi.ieeecomputersociety.org/10.1109/TPDS.2011.159|User-Level Implementations of Read-Copy Update]] (freely available [[http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf|pre-publication version]]). See also the freely available [[http://www.rdrop.com/users/paulmck/RCU/|supplementary information]]. * [[http://en.wikipedia.org/wiki/Read-copy-update|The wikipedia article]]. For additional documentation on RCU, see Documentation/RCU/RTFP.txt in your friendly Linux-kernel source tree.