11da177e4SLinus TorvaldsRead the F-ing Papers! 21da177e4SLinus Torvalds 31da177e4SLinus Torvalds 41da177e4SLinus TorvaldsThis document describes RCU-related publications, and is followed by 5dd81eca8SPaul E. McKenneythe corresponding bibtex entries. A number of the publications may 6dd81eca8SPaul E. McKenneybe found at http://www.rdrop.com/users/paulmck/RCU/. 71da177e4SLinus Torvalds 81da177e4SLinus TorvaldsThe first thing resembling RCU was published in 1980, when Kung and Lehman 91da177e4SLinus Torvalds[Kung80] recommended use of a garbage collector to defer destruction 101da177e4SLinus Torvaldsof nodes in a parallel binary search tree in order to simplify its 111da177e4SLinus Torvaldsimplementation. This works well in environments that have garbage 12f85d6c71SPaul E. McKenneycollectors, but most production garbage collectors incur significant 13f85d6c71SPaul E. McKenneyoverhead. 141da177e4SLinus Torvalds 151da177e4SLinus TorvaldsIn 1982, Manber and Ladner [Manber82,Manber84] recommended deferring 161da177e4SLinus Torvaldsdestruction until all threads running at that time have terminated, again 171da177e4SLinus Torvaldsfor a parallel binary search tree. This approach works well in systems 181da177e4SLinus Torvaldswith short-lived threads, such as the K42 research operating system. 191da177e4SLinus TorvaldsHowever, Linux has long-lived tasks, so more is needed. 201da177e4SLinus Torvalds 211da177e4SLinus TorvaldsIn 1986, Hennessy, Osisek, and Seigh [Hennessy89] introduced passive 221da177e4SLinus Torvaldsserialization, which is an RCU-like mechanism that relies on the presence 231da177e4SLinus Torvaldsof "quiescent states" in the VM/XA hypervisor that are guaranteed not 241da177e4SLinus Torvaldsto be referencing the data structure. However, this mechanism was not 251da177e4SLinus Torvaldsoptimized for modern computer systems, which is not surprising given 261da177e4SLinus Torvaldsthat these overheads were not so expensive in the mid-80s. Nonetheless, 271da177e4SLinus Torvaldspassive serialization appears to be the first deferred-destruction 281da177e4SLinus Torvaldsmechanism to be used in production. Furthermore, the relevant patent has 291da177e4SLinus Torvaldslapsed, so this approach may be used in non-GPL software, if desired. 301da177e4SLinus Torvalds(In contrast, use of RCU is permitted only in software licensed under 311da177e4SLinus TorvaldsGPL. Sorry!!!) 321da177e4SLinus Torvalds 331da177e4SLinus TorvaldsIn 1990, Pugh [Pugh90] noted that explicitly tracking which threads 341da177e4SLinus Torvaldswere reading a given data structure permitted deferred free to operate 351da177e4SLinus Torvaldsin the presence of non-terminating threads. However, this explicit 361da177e4SLinus Torvaldstracking imposes significant read-side overhead, which is undesirable 371da177e4SLinus Torvaldsin read-mostly situations. This algorithm does take pains to avoid 381da177e4SLinus Torvaldswrite-side contention and parallelize the other write-side overheads by 391da177e4SLinus Torvaldsproviding a fine-grained locking design, however, it would be interesting 401da177e4SLinus Torvaldsto see how much of the performance advantage reported in 1990 remains 411da177e4SLinus Torvaldsin 2004. 421da177e4SLinus Torvalds 431da177e4SLinus TorvaldsAt about this same time, Adams [Adams91] described ``chaotic relaxation'', 441da177e4SLinus Torvaldswhere the normal barriers between successive iterations of convergent 451da177e4SLinus Torvaldsnumerical algorithms are relaxed, so that iteration $n$ might use 461da177e4SLinus Torvaldsdata from iteration $n-1$ or even $n-2$. This introduces error, 471da177e4SLinus Torvaldswhich typically slows convergence and thus increases the number of 481da177e4SLinus Torvaldsiterations required. However, this increase is sometimes more than made 491da177e4SLinus Torvaldsup for by a reduction in the number of expensive barrier operations, 501da177e4SLinus Torvaldswhich are otherwise required to synchronize the threads at the end 511da177e4SLinus Torvaldsof each iteration. Unfortunately, chaotic relaxation requires highly 521da177e4SLinus Torvaldsstructured data, such as the matrices used in scientific programs, and 531da177e4SLinus Torvaldsis thus inapplicable to most data structures in operating-system kernels. 541da177e4SLinus Torvalds 55*32300751SPaul E. McKenneyIn 1992, Henry (now Alexia) Massalin completed a dissertation advising 56*32300751SPaul E. McKenneyparallel programmers to defer processing when feasible to simplify 57*32300751SPaul E. McKenneysynchronization. RCU makes extremely heavy use of this advice. 58*32300751SPaul E. McKenney 591da177e4SLinus TorvaldsIn 1993, Jacobson [Jacobson93] verbally described what is perhaps the 601da177e4SLinus Torvaldssimplest deferred-free technique: simply waiting a fixed amount of time 611da177e4SLinus Torvaldsbefore freeing blocks awaiting deferred free. Jacobson did not describe 621da177e4SLinus Torvaldsany write-side changes he might have made in this work using SGI's Irix 631da177e4SLinus Torvaldskernel. Aju John published a similar technique in 1995 [AjuJohn95]. 641da177e4SLinus TorvaldsThis works well if there is a well-defined upper bound on the length of 651da177e4SLinus Torvaldstime that reading threads can hold references, as there might well be in 661da177e4SLinus Torvaldshard real-time systems. However, if this time is exceeded, perhaps due 671da177e4SLinus Torvaldsto preemption, excessive interrupts, or larger-than-anticipated load, 681da177e4SLinus Torvaldsmemory corruption can ensue, with no reasonable means of diagnosis. 691da177e4SLinus TorvaldsJacobson's technique is therefore inappropriate for use in production 701da177e4SLinus Torvaldsoperating-system kernels, except when such kernels can provide hard 711da177e4SLinus Torvaldsreal-time response guarantees for all operations. 721da177e4SLinus Torvalds 731da177e4SLinus TorvaldsAlso in 1995, Pu et al. [Pu95a] applied a technique similar to that of Pugh's 741da177e4SLinus Torvaldsread-side-tracking to permit replugging of algorithms within a commercial 751da177e4SLinus TorvaldsUnix operating system. However, this replugging permitted only a single 761da177e4SLinus Torvaldsreader at a time. The following year, this same group of researchers 771da177e4SLinus Torvaldsextended their technique to allow for multiple readers [Cowan96a]. 781da177e4SLinus TorvaldsTheir approach requires memory barriers (and thus pipeline stalls), 791da177e4SLinus Torvaldsbut reduces memory latency, contention, and locking overheads. 801da177e4SLinus Torvalds 811da177e4SLinus Torvalds1995 also saw the first publication of DYNIX/ptx's RCU mechanism 821da177e4SLinus Torvalds[Slingwine95], which was optimized for modern CPU architectures, 831da177e4SLinus Torvaldsand was successfully applied to a number of situations within the 841da177e4SLinus TorvaldsDYNIX/ptx kernel. The corresponding conference paper appeared in 1998 851da177e4SLinus Torvalds[McKenney98]. 861da177e4SLinus Torvalds 871da177e4SLinus TorvaldsIn 1999, the Tornado and K42 groups described their "generations" 881da177e4SLinus Torvaldsmechanism, which quite similar to RCU [Gamsa99]. These operating systems 891da177e4SLinus Torvaldsmade pervasive use of RCU in place of "existence locks", which greatly 901da177e4SLinus Torvaldssimplifies locking hierarchies. 911da177e4SLinus Torvalds 921da177e4SLinus Torvalds2001 saw the first RCU presentation involving Linux [McKenney01a] 931da177e4SLinus Torvaldsat OLS. The resulting abundance of RCU patches was presented the 941da177e4SLinus Torvaldsfollowing year [McKenney02a], and use of RCU in dcache was first 951da177e4SLinus Torvaldsdescribed that same year [Linder02a]. 961da177e4SLinus Torvalds 97d19720a9SPaul E. McKenneyAlso in 2002, Michael [Michael02b,Michael02a] presented "hazard-pointer" 98d19720a9SPaul E. McKenneytechniques that defer the destruction of data structures to simplify 99d19720a9SPaul E. McKenneynon-blocking synchronization (wait-free synchronization, lock-free 100d19720a9SPaul E. McKenneysynchronization, and obstruction-free synchronization are all examples of 101d19720a9SPaul E. McKenneynon-blocking synchronization). In particular, this technique eliminates 102d19720a9SPaul E. McKenneylocking, reduces contention, reduces memory latency for readers, and 103d19720a9SPaul E. McKenneyparallelizes pipeline stalls and memory latency for writers. However, 104d19720a9SPaul E. McKenneythese techniques still impose significant read-side overhead in the 105d19720a9SPaul E. McKenneyform of memory barriers. Researchers at Sun worked along similar lines 106f85d6c71SPaul E. McKenneyin the same timeframe [HerlihyLM02]. These techniques can be thought 107f85d6c71SPaul E. McKenneyof as inside-out reference counts, where the count is represented by the 108f85d6c71SPaul E. McKenneynumber of hazard pointers referencing a given data structure (rather than 109f85d6c71SPaul E. McKenneythe more conventional counter field within the data structure itself). 110f85d6c71SPaul E. McKenney 111f85d6c71SPaul E. McKenneyBy the same token, RCU can be thought of as a "bulk reference count", 112f85d6c71SPaul E. McKenneywhere some form of reference counter covers all reference by a given CPU 113f85d6c71SPaul E. McKenneyor thread during a set timeframe. This timeframe is related to, but 114f85d6c71SPaul E. McKenneynot necessarily exactly the same as, an RCU grace period. In classic 115f85d6c71SPaul E. McKenneyRCU, the reference counter is the per-CPU bit in the "bitmask" field, 116f85d6c71SPaul E. McKenneyand each such bit covers all references that might have been made by 117f85d6c71SPaul E. McKenneythe corresponding CPU during the prior grace period. Of course, RCU 118f85d6c71SPaul E. McKenneycan be thought of in other terms as well. 1191da177e4SLinus Torvalds 1201da177e4SLinus TorvaldsIn 2003, the K42 group described how RCU could be used to create 121f85d6c71SPaul E. McKenneyhot-pluggable implementations of operating-system functions [Appavoo03a]. 122f85d6c71SPaul E. McKenneyLater that year saw a paper describing an RCU implementation of System 123f85d6c71SPaul E. McKenneyV IPC [Arcangeli03], and an introduction to RCU in Linux Journal 124f85d6c71SPaul E. McKenney[McKenney03a]. 1251da177e4SLinus Torvalds 1261da177e4SLinus Torvalds2004 has seen a Linux-Journal article on use of RCU in dcache 1271da177e4SLinus Torvalds[McKenney04a], a performance comparison of locking to RCU on several 1281da177e4SLinus Torvaldsdifferent CPUs [McKenney04b], a dissertation describing use of RCU in a 129a83f1fe2SPaul E. McKenneynumber of operating-system kernels [PaulEdwardMcKenneyPhD], a paper 130a83f1fe2SPaul E. McKenneydescribing how to make RCU safe for soft-realtime applications [Sarma04c], 131a83f1fe2SPaul E. McKenneyand a paper describing SELinux performance with RCU [JamesMorris04b]. 1321da177e4SLinus Torvalds 133f85d6c71SPaul E. McKenney2005 brought further adaptation of RCU to realtime use, permitting 134dd81eca8SPaul E. McKenneypreemption of RCU realtime critical sections [PaulMcKenney05a, 135dd81eca8SPaul E. McKenneyPaulMcKenney05b]. 136dd81eca8SPaul E. McKenney 137f85d6c71SPaul E. McKenney2006 saw the first best-paper award for an RCU paper [ThomasEHart2006a], 138f85d6c71SPaul E. McKenneyas well as further work on efficient implementations of preemptible 139f85d6c71SPaul E. McKenneyRCU [PaulEMcKenney2006b], but priority-boosting of RCU read-side critical 140f85d6c71SPaul E. McKenneysections proved elusive. An RCU implementation permitting general 141f85d6c71SPaul E. McKenneyblocking in read-side critical sections appeared [PaulEMcKenney2006c], 142f85d6c71SPaul E. McKenneyRobert Olsson described an RCU-protected trie-hash combination 143f85d6c71SPaul E. McKenney[RobertOlsson2006a]. 144f85d6c71SPaul E. McKenney 145*32300751SPaul E. McKenney2007 saw the journal version of the award-winning RCU paper from 2006 146*32300751SPaul E. McKenney[ThomasEHart2007a], as well as a paper demonstrating use of Promela 147*32300751SPaul E. McKenneyand Spin to mechanically verify an optimization to Oleg Nesterov's 148*32300751SPaul E. McKenneyQRCU [PaulEMcKenney2007QRCUspin], a design document describing 149*32300751SPaul E. McKenneypreemptible RCU [PaulEMcKenney2007PreemptibleRCU], and the three-part 150*32300751SPaul E. McKenneyLWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally, 151*32300751SPaul E. McKenneyPaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI]. 152f85d6c71SPaul E. McKenney 1531da177e4SLinus TorvaldsBibtex Entries 1541da177e4SLinus Torvalds 1551da177e4SLinus Torvalds@article{Kung80 1561da177e4SLinus Torvalds,author="H. T. Kung and Q. Lehman" 1571da177e4SLinus Torvalds,title="Concurrent Maintenance of Binary Search Trees" 1581da177e4SLinus Torvalds,Year="1980" 1591da177e4SLinus Torvalds,Month="September" 1601da177e4SLinus Torvalds,journal="ACM Transactions on Database Systems" 1611da177e4SLinus Torvalds,volume="5" 1621da177e4SLinus Torvalds,number="3" 1631da177e4SLinus Torvalds,pages="354-382" 1641da177e4SLinus Torvalds} 1651da177e4SLinus Torvalds 1661da177e4SLinus Torvalds@techreport{Manber82 1671da177e4SLinus Torvalds,author="Udi Manber and Richard E. Ladner" 1681da177e4SLinus Torvalds,title="Concurrency Control in a Dynamic Search Structure" 1691da177e4SLinus Torvalds,institution="Department of Computer Science, University of Washington" 1701da177e4SLinus Torvalds,address="Seattle, Washington" 1711da177e4SLinus Torvalds,year="1982" 1721da177e4SLinus Torvalds,number="82-01-01" 1731da177e4SLinus Torvalds,month="January" 1741da177e4SLinus Torvalds,pages="28" 1751da177e4SLinus Torvalds} 1761da177e4SLinus Torvalds 1771da177e4SLinus Torvalds@article{Manber84 1781da177e4SLinus Torvalds,author="Udi Manber and Richard E. Ladner" 1791da177e4SLinus Torvalds,title="Concurrency Control in a Dynamic Search Structure" 1801da177e4SLinus Torvalds,Year="1984" 1811da177e4SLinus Torvalds,Month="September" 1821da177e4SLinus Torvalds,journal="ACM Transactions on Database Systems" 1831da177e4SLinus Torvalds,volume="9" 1841da177e4SLinus Torvalds,number="3" 1851da177e4SLinus Torvalds,pages="439-455" 1861da177e4SLinus Torvalds} 1871da177e4SLinus Torvalds 1881da177e4SLinus Torvalds@techreport{Hennessy89 1891da177e4SLinus Torvalds,author="James P. Hennessy and Damian L. Osisek and Joseph W. {Seigh II}" 1901da177e4SLinus Torvalds,title="Passive Serialization in a Multitasking Environment" 1911da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 1921da177e4SLinus Torvalds,address="Washington, DC" 1931da177e4SLinus Torvalds,year="1989" 1941da177e4SLinus Torvalds,number="US Patent 4,809,168 (lapsed)" 1951da177e4SLinus Torvalds,month="February" 1961da177e4SLinus Torvalds,pages="11" 1971da177e4SLinus Torvalds} 1981da177e4SLinus Torvalds 1991da177e4SLinus Torvalds@techreport{Pugh90 2001da177e4SLinus Torvalds,author="William Pugh" 2011da177e4SLinus Torvalds,title="Concurrent Maintenance of Skip Lists" 2021da177e4SLinus Torvalds,institution="Institute of Advanced Computer Science Studies, Department of Computer Science, University of Maryland" 2031da177e4SLinus Torvalds,address="College Park, Maryland" 2041da177e4SLinus Torvalds,year="1990" 2051da177e4SLinus Torvalds,number="CS-TR-2222.1" 2061da177e4SLinus Torvalds,month="June" 2071da177e4SLinus Torvalds} 2081da177e4SLinus Torvalds 2091da177e4SLinus Torvalds@Book{Adams91 2101da177e4SLinus Torvalds,Author="Gregory R. Adams" 2111da177e4SLinus Torvalds,title="Concurrent Programming, Principles, and Practices" 2121da177e4SLinus Torvalds,Publisher="Benjamin Cummins" 2131da177e4SLinus Torvalds,Year="1991" 2141da177e4SLinus Torvalds} 2151da177e4SLinus Torvalds 216*32300751SPaul E. McKenney@phdthesis{HMassalinPhD 217*32300751SPaul E. McKenney,author="H. Massalin" 218*32300751SPaul E. McKenney,title="Synthesis: An Efficient Implementation of Fundamental Operating 219*32300751SPaul E. McKenneySystem Services" 220*32300751SPaul E. McKenney,school="Columbia University" 221*32300751SPaul E. McKenney,address="New York, NY" 222*32300751SPaul E. McKenney,year="1992" 223*32300751SPaul E. McKenney,annotation=" 224*32300751SPaul E. McKenney Mondo optimizing compiler. 225*32300751SPaul E. McKenney Wait-free stuff. 226*32300751SPaul E. McKenney Good advice: defer work to avoid synchronization. 227*32300751SPaul E. McKenney" 228*32300751SPaul E. McKenney} 229*32300751SPaul E. McKenney 2301da177e4SLinus Torvalds@unpublished{Jacobson93 2311da177e4SLinus Torvalds,author="Van Jacobson" 2321da177e4SLinus Torvalds,title="Avoid Read-Side Locking Via Delayed Free" 2331da177e4SLinus Torvalds,year="1993" 2341da177e4SLinus Torvalds,month="September" 2351da177e4SLinus Torvalds,note="Verbal discussion" 2361da177e4SLinus Torvalds} 2371da177e4SLinus Torvalds 2381da177e4SLinus Torvalds@Conference{AjuJohn95 2391da177e4SLinus Torvalds,Author="Aju John" 2401da177e4SLinus Torvalds,Title="Dynamic vnodes -- Design and Implementation" 2411da177e4SLinus Torvalds,Booktitle="{USENIX Winter 1995}" 2421da177e4SLinus Torvalds,Publisher="USENIX Association" 2431da177e4SLinus Torvalds,Month="January" 2441da177e4SLinus Torvalds,Year="1995" 2451da177e4SLinus Torvalds,pages="11-23" 2461da177e4SLinus Torvalds,Address="New Orleans, LA" 2471da177e4SLinus Torvalds} 2481da177e4SLinus Torvalds 249f85d6c71SPaul E. McKenney@conference{Pu95a, 250f85d6c71SPaul E. McKenneyAuthor = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and 251f85d6c71SPaul E. McKenneyCrispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and 252f85d6c71SPaul E. McKenneyKe Zhang", 253f85d6c71SPaul E. McKenneyTitle = "Optimistic Incremental Specialization: Streamlining a Commercial 254f85d6c71SPaul E. McKenneyOperating System", 255f85d6c71SPaul E. McKenneyBooktitle = "15\textsuperscript{th} ACM Symposium on 256f85d6c71SPaul E. McKenneyOperating Systems Principles (SOSP'95)", 257f85d6c71SPaul E. McKenneyaddress = "Copper Mountain, CO", 258f85d6c71SPaul E. McKenneymonth="December", 259f85d6c71SPaul E. McKenneyyear="1995", 260f85d6c71SPaul E. McKenneypages="314-321", 261f85d6c71SPaul E. McKenneyannotation=" 262f85d6c71SPaul E. McKenney Uses a replugger, but with a flag to signal when people are 263f85d6c71SPaul E. McKenney using the resource at hand. Only one reader at a time. 264f85d6c71SPaul E. McKenney" 265f85d6c71SPaul E. McKenney} 266f85d6c71SPaul E. McKenney 267f85d6c71SPaul E. McKenney@conference{Cowan96a, 268f85d6c71SPaul E. McKenneyAuthor = "Crispin Cowan and Tito Autrey and Charles Krasic and 269f85d6c71SPaul E. McKenneyCalton Pu and Jonathan Walpole", 270f85d6c71SPaul E. McKenneyTitle = "Fast Concurrent Dynamic Linking for an Adaptive Operating System", 271f85d6c71SPaul E. McKenneyBooktitle = "International Conference on Configurable Distributed Systems 272f85d6c71SPaul E. McKenney(ICCDS'96)", 273f85d6c71SPaul E. McKenneyaddress = "Annapolis, MD", 274f85d6c71SPaul E. McKenneymonth="May", 275f85d6c71SPaul E. McKenneyyear="1996", 276f85d6c71SPaul E. McKenneypages="108", 277f85d6c71SPaul E. McKenneyisbn="0-8186-7395-8", 278f85d6c71SPaul E. McKenneyannotation=" 279f85d6c71SPaul E. McKenney Uses a replugger, but with a counter to signal when people are 280f85d6c71SPaul E. McKenney using the resource at hand. Allows multiple readers. 281f85d6c71SPaul E. McKenney" 282f85d6c71SPaul E. McKenney} 283f85d6c71SPaul E. McKenney 2841da177e4SLinus Torvalds@techreport{Slingwine95 2851da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 2861da177e4SLinus Torvalds,title="Apparatus and Method for Achieving Reduced Overhead Mutual 2871da177e4SLinus TorvaldsExclusion and Maintaining Coherency in a Multiprocessor System 2881da177e4SLinus TorvaldsUtilizing Execution History and Thread Monitoring" 2891da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 2901da177e4SLinus Torvalds,address="Washington, DC" 2911da177e4SLinus Torvalds,year="1995" 2921da177e4SLinus Torvalds,number="US Patent 5,442,758 (contributed under GPL)" 2931da177e4SLinus Torvalds,month="August" 2941da177e4SLinus Torvalds} 2951da177e4SLinus Torvalds 2961da177e4SLinus Torvalds@techreport{Slingwine97 2971da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 2981da177e4SLinus Torvalds,title="Method for maintaining data coherency using thread 2991da177e4SLinus Torvaldsactivity summaries in a multicomputer system" 3001da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 3011da177e4SLinus Torvalds,address="Washington, DC" 3021da177e4SLinus Torvalds,year="1997" 3031da177e4SLinus Torvalds,number="US Patent 5,608,893 (contributed under GPL)" 3041da177e4SLinus Torvalds,month="March" 3051da177e4SLinus Torvalds} 3061da177e4SLinus Torvalds 3071da177e4SLinus Torvalds@techreport{Slingwine98 3081da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 3091da177e4SLinus Torvalds,title="Apparatus and method for achieving reduced overhead 3101da177e4SLinus Torvaldsmutual exclusion and maintaining coherency in a multiprocessor 3111da177e4SLinus Torvaldssystem utilizing execution history and thread monitoring" 3121da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 3131da177e4SLinus Torvalds,address="Washington, DC" 3141da177e4SLinus Torvalds,year="1998" 3151da177e4SLinus Torvalds,number="US Patent 5,727,209 (contributed under GPL)" 3161da177e4SLinus Torvalds,month="March" 3171da177e4SLinus Torvalds} 3181da177e4SLinus Torvalds 3191da177e4SLinus Torvalds@Conference{McKenney98 3201da177e4SLinus Torvalds,Author="Paul E. McKenney and John D. Slingwine" 3211da177e4SLinus Torvalds,Title="Read-Copy Update: Using Execution History to Solve Concurrency 3221da177e4SLinus TorvaldsProblems" 3231da177e4SLinus Torvalds,Booktitle="{Parallel and Distributed Computing and Systems}" 3241da177e4SLinus Torvalds,Month="October" 3251da177e4SLinus Torvalds,Year="1998" 3261da177e4SLinus Torvalds,pages="509-518" 3271da177e4SLinus Torvalds,Address="Las Vegas, NV" 3281da177e4SLinus Torvalds} 3291da177e4SLinus Torvalds 3301da177e4SLinus Torvalds@Conference{Gamsa99 3311da177e4SLinus Torvalds,Author="Ben Gamsa and Orran Krieger and Jonathan Appavoo and Michael Stumm" 3321da177e4SLinus Torvalds,Title="Tornado: Maximizing Locality and Concurrency in a Shared Memory 3331da177e4SLinus TorvaldsMultiprocessor Operating System" 3341da177e4SLinus Torvalds,Booktitle="{Proceedings of the 3\textsuperscript{rd} Symposium on 3351da177e4SLinus TorvaldsOperating System Design and Implementation}" 3361da177e4SLinus Torvalds,Month="February" 3371da177e4SLinus Torvalds,Year="1999" 3381da177e4SLinus Torvalds,pages="87-100" 3391da177e4SLinus Torvalds,Address="New Orleans, LA" 3401da177e4SLinus Torvalds} 3411da177e4SLinus Torvalds 3421da177e4SLinus Torvalds@techreport{Slingwine01 3431da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 3441da177e4SLinus Torvalds,title="Apparatus and method for achieving reduced overhead 3451da177e4SLinus Torvaldsmutual exclusion and maintaining coherency in a multiprocessor 3461da177e4SLinus Torvaldssystem utilizing execution history and thread monitoring" 3471da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 3481da177e4SLinus Torvalds,address="Washington, DC" 3491da177e4SLinus Torvalds,year="2001" 3501da177e4SLinus Torvalds,number="US Patent 5,219,690 (contributed under GPL)" 3511da177e4SLinus Torvalds,month="April" 3521da177e4SLinus Torvalds} 3531da177e4SLinus Torvalds 3541da177e4SLinus Torvalds@Conference{McKenney01a 3551da177e4SLinus Torvalds,Author="Paul E. McKenney and Jonathan Appavoo and Andi Kleen and 3561da177e4SLinus TorvaldsOrran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" 3571da177e4SLinus Torvalds,Title="Read-Copy Update" 3581da177e4SLinus Torvalds,Booktitle="{Ottawa Linux Symposium}" 3591da177e4SLinus Torvalds,Month="July" 3601da177e4SLinus Torvalds,Year="2001" 3611da177e4SLinus Torvalds,note="Available: 3621da177e4SLinus Torvalds\url{http://www.linuxsymposium.org/2001/abstracts/readcopy.php} 3631da177e4SLinus Torvalds\url{http://www.rdrop.com/users/paulmck/rclock/rclock_OLS.2001.05.01c.pdf} 3641da177e4SLinus Torvalds[Viewed June 23, 2004]" 3651da177e4SLinus Torvaldsannotation=" 3661da177e4SLinus TorvaldsDescribed RCU, and presented some patches implementing and using it in 3671da177e4SLinus Torvaldsthe Linux kernel. 3681da177e4SLinus Torvalds" 3691da177e4SLinus Torvalds} 3701da177e4SLinus Torvalds 3711da177e4SLinus Torvalds@Conference{Linder02a 3721da177e4SLinus Torvalds,Author="Hanna Linder and Dipankar Sarma and Maneesh Soni" 3731da177e4SLinus Torvalds,Title="Scalability of the Directory Entry Cache" 3741da177e4SLinus Torvalds,Booktitle="{Ottawa Linux Symposium}" 3751da177e4SLinus Torvalds,Month="June" 3761da177e4SLinus Torvalds,Year="2002" 3771da177e4SLinus Torvalds,pages="289-300" 3781da177e4SLinus Torvalds} 3791da177e4SLinus Torvalds 3801da177e4SLinus Torvalds@Conference{McKenney02a 3811da177e4SLinus Torvalds,Author="Paul E. McKenney and Dipankar Sarma and 3821da177e4SLinus TorvaldsAndrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" 3831da177e4SLinus Torvalds,Title="Read-Copy Update" 3841da177e4SLinus Torvalds,Booktitle="{Ottawa Linux Symposium}" 3851da177e4SLinus Torvalds,Month="June" 3861da177e4SLinus Torvalds,Year="2002" 3871da177e4SLinus Torvalds,pages="338-367" 3881da177e4SLinus Torvalds,note="Available: 3891da177e4SLinus Torvalds\url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} 3901da177e4SLinus Torvalds[Viewed June 23, 2004]" 3911da177e4SLinus Torvalds} 3921da177e4SLinus Torvalds 393f85d6c71SPaul E. McKenney@conference{Michael02a 394f85d6c71SPaul E. McKenney,author="Maged M. Michael" 395f85d6c71SPaul E. McKenney,title="Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic 396f85d6c71SPaul E. McKenneyReads and Writes" 397f85d6c71SPaul E. McKenney,Year="2002" 398f85d6c71SPaul E. McKenney,Month="August" 399f85d6c71SPaul E. McKenney,booktitle="{Proceedings of the 21\textsuperscript{st} Annual ACM 400f85d6c71SPaul E. McKenneySymposium on Principles of Distributed Computing}" 401f85d6c71SPaul E. McKenney,pages="21-30" 402f85d6c71SPaul E. McKenney,annotation=" 403f85d6c71SPaul E. McKenney Each thread keeps an array of pointers to items that it is 404f85d6c71SPaul E. McKenney currently referencing. Sort of an inside-out garbage collection 405f85d6c71SPaul E. McKenney mechanism, but one that requires the accessing code to explicitly 406f85d6c71SPaul E. McKenney state its needs. Also requires read-side memory barriers on 407f85d6c71SPaul E. McKenney most architectures. 408f85d6c71SPaul E. McKenney" 409f85d6c71SPaul E. McKenney} 410f85d6c71SPaul E. McKenney 411f85d6c71SPaul E. McKenney@conference{Michael02b 412f85d6c71SPaul E. McKenney,author="Maged M. Michael" 413f85d6c71SPaul E. McKenney,title="High Performance Dynamic Lock-Free Hash Tables and List-Based Sets" 414f85d6c71SPaul E. McKenney,Year="2002" 415f85d6c71SPaul E. McKenney,Month="August" 416f85d6c71SPaul E. McKenney,booktitle="{Proceedings of the 14\textsuperscript{th} Annual ACM 417f85d6c71SPaul E. McKenneySymposium on Parallel 418f85d6c71SPaul E. McKenneyAlgorithms and Architecture}" 419f85d6c71SPaul E. McKenney,pages="73-82" 420f85d6c71SPaul E. McKenney,annotation=" 421f85d6c71SPaul E. McKenney Like the title says... 422f85d6c71SPaul E. McKenney" 423f85d6c71SPaul E. McKenney} 424f85d6c71SPaul E. McKenney 425f85d6c71SPaul E. McKenney@InProceedings{HerlihyLM02 426f85d6c71SPaul E. McKenney,author={Maurice Herlihy and Victor Luchangco and Mark Moir} 427f85d6c71SPaul E. McKenney,title="The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, 428f85d6c71SPaul E. McKenneyLock-Free Data Structures" 429f85d6c71SPaul E. McKenney,booktitle={Proceedings of 16\textsuperscript{th} International 430f85d6c71SPaul E. McKenneySymposium on Distributed Computing} 431f85d6c71SPaul E. McKenney,year=2002 432f85d6c71SPaul E. McKenney,month="October" 433f85d6c71SPaul E. McKenney,pages="339-353" 434f85d6c71SPaul E. McKenney} 435f85d6c71SPaul E. McKenney 4361da177e4SLinus Torvalds@article{Appavoo03a 4371da177e4SLinus Torvalds,author="J. Appavoo and K. Hui and C. A. N. Soules and R. W. Wisniewski and 4381da177e4SLinus TorvaldsD. M. {Da Silva} and O. Krieger and M. A. Auslander and D. J. Edelsohn and 4391da177e4SLinus TorvaldsB. Gamsa and G. R. Ganger and P. McKenney and M. Ostrowski and 4401da177e4SLinus TorvaldsB. Rosenburg and M. Stumm and J. Xenidis" 4411da177e4SLinus Torvalds,title="Enabling Autonomic Behavior in Systems Software With Hot Swapping" 4421da177e4SLinus Torvalds,Year="2003" 4431da177e4SLinus Torvalds,Month="January" 4441da177e4SLinus Torvalds,journal="IBM Systems Journal" 4451da177e4SLinus Torvalds,volume="42" 4461da177e4SLinus Torvalds,number="1" 4471da177e4SLinus Torvalds,pages="60-76" 4481da177e4SLinus Torvalds} 4491da177e4SLinus Torvalds 4501da177e4SLinus Torvalds@Conference{Arcangeli03 4511da177e4SLinus Torvalds,Author="Andrea Arcangeli and Mingming Cao and Paul E. McKenney and 4521da177e4SLinus TorvaldsDipankar Sarma" 4531da177e4SLinus Torvalds,Title="Using Read-Copy Update Techniques for {System V IPC} in the 4541da177e4SLinus Torvalds{Linux} 2.5 Kernel" 4551da177e4SLinus Torvalds,Booktitle="Proceedings of the 2003 USENIX Annual Technical Conference 4561da177e4SLinus Torvalds(FREENIX Track)" 4571da177e4SLinus Torvalds,Publisher="USENIX Association" 4581da177e4SLinus Torvalds,year="2003" 4591da177e4SLinus Torvalds,month="June" 4601da177e4SLinus Torvalds,pages="297-310" 4611da177e4SLinus Torvalds} 4621da177e4SLinus Torvalds 4631da177e4SLinus Torvalds@article{McKenney03a 4641da177e4SLinus Torvalds,author="Paul E. McKenney" 4651da177e4SLinus Torvalds,title="Using {RCU} in the {Linux} 2.5 Kernel" 4661da177e4SLinus Torvalds,Year="2003" 4671da177e4SLinus Torvalds,Month="October" 4681da177e4SLinus Torvalds,journal="Linux Journal" 4691da177e4SLinus Torvalds,volume="1" 4701da177e4SLinus Torvalds,number="114" 4711da177e4SLinus Torvalds,pages="18-26" 4721da177e4SLinus Torvalds} 4731da177e4SLinus Torvalds 474a83f1fe2SPaul E. McKenney@techreport{Friedberg03a 475a83f1fe2SPaul E. McKenney,author="Stuart A. Friedberg" 476a83f1fe2SPaul E. McKenney,title="Lock-Free Wild Card Search Data Structure and Method" 477a83f1fe2SPaul E. McKenney,institution="US Patent and Trademark Office" 478a83f1fe2SPaul E. McKenney,address="Washington, DC" 479a83f1fe2SPaul E. McKenney,year="2003" 480a83f1fe2SPaul E. McKenney,number="US Patent 6,662,184 (contributed under GPL)" 481a83f1fe2SPaul E. McKenney,month="December" 482a83f1fe2SPaul E. McKenney,pages="112" 483a83f1fe2SPaul E. McKenney} 484a83f1fe2SPaul E. McKenney 4851da177e4SLinus Torvalds@article{McKenney04a 4861da177e4SLinus Torvalds,author="Paul E. McKenney and Dipankar Sarma and Maneesh Soni" 4871da177e4SLinus Torvalds,title="Scaling dcache with {RCU}" 4881da177e4SLinus Torvalds,Year="2004" 4891da177e4SLinus Torvalds,Month="January" 4901da177e4SLinus Torvalds,journal="Linux Journal" 4911da177e4SLinus Torvalds,volume="1" 4921da177e4SLinus Torvalds,number="118" 4931da177e4SLinus Torvalds,pages="38-46" 4941da177e4SLinus Torvalds} 4951da177e4SLinus Torvalds 4961da177e4SLinus Torvalds@Conference{McKenney04b 4971da177e4SLinus Torvalds,Author="Paul E. McKenney" 4981da177e4SLinus Torvalds,Title="{RCU} vs. Locking Performance on Different {CPUs}" 4991da177e4SLinus Torvalds,Booktitle="{linux.conf.au}" 5001da177e4SLinus Torvalds,Month="January" 5011da177e4SLinus Torvalds,Year="2004" 5021da177e4SLinus Torvalds,Address="Adelaide, Australia" 5031da177e4SLinus Torvalds,note="Available: 5041da177e4SLinus Torvalds\url{http://www.linux.org.au/conf/2004/abstracts.html#90} 5051da177e4SLinus Torvalds\url{http://www.rdrop.com/users/paulmck/rclock/lockperf.2004.01.17a.pdf} 5061da177e4SLinus Torvalds[Viewed June 23, 2004]" 5071da177e4SLinus Torvalds} 5081da177e4SLinus Torvalds 5091da177e4SLinus Torvalds@phdthesis{PaulEdwardMcKenneyPhD 5101da177e4SLinus Torvalds,author="Paul E. McKenney" 5111da177e4SLinus Torvalds,title="Exploiting Deferred Destruction: 5121da177e4SLinus TorvaldsAn Analysis of Read-Copy-Update Techniques 5131da177e4SLinus Torvaldsin Operating System Kernels" 5141da177e4SLinus Torvalds,school="OGI School of Science and Engineering at 5151da177e4SLinus TorvaldsOregon Health and Sciences University" 5161da177e4SLinus Torvalds,year="2004" 517a83f1fe2SPaul E. McKenney,note="Available: 518a83f1fe2SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf} 519a83f1fe2SPaul E. McKenney[Viewed October 15, 2004]" 5201da177e4SLinus Torvalds} 5211da177e4SLinus Torvalds 5221da177e4SLinus Torvalds@Conference{Sarma04c 5231da177e4SLinus Torvalds,Author="Dipankar Sarma and Paul E. McKenney" 5241da177e4SLinus Torvalds,Title="Making RCU Safe for Deep Sub-Millisecond Response Realtime Applications" 5251da177e4SLinus Torvalds,Booktitle="Proceedings of the 2004 USENIX Annual Technical Conference 5261da177e4SLinus Torvalds(FREENIX Track)" 5271da177e4SLinus Torvalds,Publisher="USENIX Association" 5281da177e4SLinus Torvalds,year="2004" 5291da177e4SLinus Torvalds,month="June" 5301da177e4SLinus Torvalds,pages="182-191" 5311da177e4SLinus Torvalds} 532a83f1fe2SPaul E. McKenney 533a83f1fe2SPaul E. McKenney@unpublished{JamesMorris04b 534a83f1fe2SPaul E. McKenney,Author="James Morris" 535a83f1fe2SPaul E. McKenney,Title="Recent Developments in {SELinux} Kernel Performance" 536a83f1fe2SPaul E. McKenney,month="December" 537a83f1fe2SPaul E. McKenney,year="2004" 538a83f1fe2SPaul E. McKenney,note="Available: 539a83f1fe2SPaul E. McKenney\url{http://www.livejournal.com/users/james_morris/2153.html} 540a83f1fe2SPaul E. McKenney[Viewed December 10, 2004]" 541a83f1fe2SPaul E. McKenney} 542dd81eca8SPaul E. McKenney 543dd81eca8SPaul E. McKenney@unpublished{PaulMcKenney05a 544dd81eca8SPaul E. McKenney,Author="Paul E. McKenney" 545dd81eca8SPaul E. McKenney,Title="{[RFC]} {RCU} and {CONFIG\_PREEMPT\_RT} progress" 546dd81eca8SPaul E. McKenney,month="May" 547dd81eca8SPaul E. McKenney,year="2005" 548dd81eca8SPaul E. McKenney,note="Available: 549dd81eca8SPaul E. McKenney\url{http://lkml.org/lkml/2005/5/9/185} 550dd81eca8SPaul E. McKenney[Viewed May 13, 2005]" 551dd81eca8SPaul E. McKenney,annotation=" 552dd81eca8SPaul E. McKenney First publication of working lock-based deferred free patches 553dd81eca8SPaul E. McKenney for the CONFIG_PREEMPT_RT environment. 554dd81eca8SPaul E. McKenney" 555dd81eca8SPaul E. McKenney} 556dd81eca8SPaul E. McKenney 557dd81eca8SPaul E. McKenney@conference{PaulMcKenney05b 558dd81eca8SPaul E. McKenney,Author="Paul E. McKenney and Dipankar Sarma" 559dd81eca8SPaul E. McKenney,Title="Towards Hard Realtime Response from the Linux Kernel on SMP Hardware" 560dd81eca8SPaul E. McKenney,Booktitle="linux.conf.au 2005" 561dd81eca8SPaul E. McKenney,month="April" 562dd81eca8SPaul E. McKenney,year="2005" 563dd81eca8SPaul E. McKenney,address="Canberra, Australia" 564dd81eca8SPaul E. McKenney,note="Available: 565dd81eca8SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} 566dd81eca8SPaul E. McKenney[Viewed May 13, 2005]" 567dd81eca8SPaul E. McKenney,annotation=" 568dd81eca8SPaul E. McKenney Realtime turns into making RCU yet more realtime friendly. 569dd81eca8SPaul E. McKenney" 570dd81eca8SPaul E. McKenney} 571f85d6c71SPaul E. McKenney 572f85d6c71SPaul E. McKenney@conference{ThomasEHart2006a 573f85d6c71SPaul E. McKenney,Author="Thomas E. Hart and Paul E. McKenney and Angela Demke Brown" 574f85d6c71SPaul E. McKenney,Title="Making Lockless Synchronization Fast: Performance Implications 575f85d6c71SPaul E. McKenneyof Memory Reclamation" 576f85d6c71SPaul E. McKenney,Booktitle="20\textsuperscript{th} {IEEE} International Parallel and 577f85d6c71SPaul E. McKenneyDistributed Processing Symposium" 578f85d6c71SPaul E. McKenney,month="April" 579f85d6c71SPaul E. McKenney,year="2006" 580f85d6c71SPaul E. McKenney,day="25-29" 581f85d6c71SPaul E. McKenney,address="Rhodes, Greece" 582f85d6c71SPaul E. McKenney,annotation=" 583f85d6c71SPaul E. McKenney Compares QSBR (AKA "classic RCU"), HPBR, EBR, and lock-free 584f85d6c71SPaul E. McKenney reference counting. 585f85d6c71SPaul E. McKenney" 586f85d6c71SPaul E. McKenney} 587f85d6c71SPaul E. McKenney 588f85d6c71SPaul E. McKenney@Conference{PaulEMcKenney2006b 589f85d6c71SPaul E. McKenney,Author="Paul E. McKenney and Dipankar Sarma and Ingo Molnar and 590f85d6c71SPaul E. McKenneySuparna Bhattacharya" 591f85d6c71SPaul E. McKenney,Title="Extending RCU for Realtime and Embedded Workloads" 592f85d6c71SPaul E. McKenney,Booktitle="{Ottawa Linux Symposium}" 593f85d6c71SPaul E. McKenney,Month="July" 594f85d6c71SPaul E. McKenney,Year="2006" 595f85d6c71SPaul E. McKenney,pages="v2 123-138" 596f85d6c71SPaul E. McKenney,note="Available: 597f85d6c71SPaul E. McKenney\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} 598f85d6c71SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} 599f85d6c71SPaul E. McKenney[Viewed January 1, 2007]" 600f85d6c71SPaul E. McKenney,annotation=" 601f85d6c71SPaul E. McKenney Described how to improve the -rt implementation of realtime RCU. 602f85d6c71SPaul E. McKenney" 603f85d6c71SPaul E. McKenney} 604f85d6c71SPaul E. McKenney 605f85d6c71SPaul E. McKenney@unpublished{PaulEMcKenney2006c 606f85d6c71SPaul E. McKenney,Author="Paul E. McKenney" 607f85d6c71SPaul E. McKenney,Title="Sleepable {RCU}" 608f85d6c71SPaul E. McKenney,month="October" 609f85d6c71SPaul E. McKenney,day="9" 610f85d6c71SPaul E. McKenney,year="2006" 611f85d6c71SPaul E. McKenney,note="Available: 612f85d6c71SPaul E. McKenney\url{http://lwn.net/Articles/202847/} 613f85d6c71SPaul E. McKenneyRevised: 614f85d6c71SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} 615f85d6c71SPaul E. McKenney[Viewed August 21, 2006]" 616f85d6c71SPaul E. McKenney,annotation=" 617f85d6c71SPaul E. McKenney LWN article introducing SRCU. 618f85d6c71SPaul E. McKenney" 619f85d6c71SPaul E. McKenney} 620f85d6c71SPaul E. McKenney 621f85d6c71SPaul E. McKenney@unpublished{RobertOlsson2006a 622f85d6c71SPaul E. McKenney,Author="Robert Olsson and Stefan Nilsson" 623f85d6c71SPaul E. McKenney,Title="{TRASH}: A dynamic {LC}-trie and hash data structure" 624f85d6c71SPaul E. McKenney,month="August" 625f85d6c71SPaul E. McKenney,day="18" 626f85d6c71SPaul E. McKenney,year="2006" 627f85d6c71SPaul E. McKenney,note="Available: 628f85d6c71SPaul E. McKenney\url{http://www.nada.kth.se/~snilsson/public/papers/trash/trash.pdf} 629f85d6c71SPaul E. McKenney[Viewed February 24, 2007]" 630f85d6c71SPaul E. McKenney,annotation=" 631f85d6c71SPaul E. McKenney RCU-protected dynamic trie-hash combination. 632f85d6c71SPaul E. McKenney" 633f85d6c71SPaul E. McKenney} 634f85d6c71SPaul E. McKenney 635f85d6c71SPaul E. McKenney@unpublished{ThomasEHart2007a 636f85d6c71SPaul E. McKenney,Author="Thomas E. Hart and Paul E. McKenney and Angela Demke Brown and Jonathan Walpole" 637f85d6c71SPaul E. McKenney,Title="Performance of memory reclamation for lockless synchronization" 638f85d6c71SPaul E. McKenney,journal="J. Parallel Distrib. Comput." 639f85d6c71SPaul E. McKenney,year="2007" 640f85d6c71SPaul E. McKenney,note="To appear in J. Parallel Distrib. Comput. 641f85d6c71SPaul E. McKenney \url{doi=10.1016/j.jpdc.2007.04.010}" 642f85d6c71SPaul E. McKenney,annotation={ 643f85d6c71SPaul E. McKenney Compares QSBR (AKA "classic RCU"), HPBR, EBR, and lock-free 644f85d6c71SPaul E. McKenney reference counting. Journal version of ThomasEHart2006a. 645f85d6c71SPaul E. McKenney} 646f85d6c71SPaul E. McKenney} 647f85d6c71SPaul E. McKenney 648f85d6c71SPaul E. McKenney@unpublished{PaulEMcKenney2007QRCUspin 649f85d6c71SPaul E. McKenney,Author="Paul E. McKenney" 650f85d6c71SPaul E. McKenney,Title="Using Promela and Spin to verify parallel algorithms" 651f85d6c71SPaul E. McKenney,month="August" 652f85d6c71SPaul E. McKenney,day="1" 653f85d6c71SPaul E. McKenney,year="2007" 654f85d6c71SPaul E. McKenney,note="Available: 655f85d6c71SPaul E. McKenney\url{http://lwn.net/Articles/243851/} 656f85d6c71SPaul E. McKenney[Viewed September 8, 2007]" 657f85d6c71SPaul E. McKenney,annotation=" 658f85d6c71SPaul E. McKenney LWN article describing Promela and spin, and also using Oleg 659f85d6c71SPaul E. McKenney Nesterov's QRCU as an example (with Paul McKenney's fastpath). 660f85d6c71SPaul E. McKenney" 661f85d6c71SPaul E. McKenney} 662f85d6c71SPaul E. McKenney 663*32300751SPaul E. McKenney@unpublished{PaulEMcKenney2007PreemptibleRCU 664*32300751SPaul E. McKenney,Author="Paul E. McKenney" 665*32300751SPaul E. McKenney,Title="The design of preemptible read-copy-update" 666*32300751SPaul E. McKenney,month="October" 667*32300751SPaul E. McKenney,day="8" 668*32300751SPaul E. McKenney,year="2007" 669*32300751SPaul E. McKenney,note="Available: 670*32300751SPaul E. McKenney\url{http://lwn.net/Articles/253651/} 671*32300751SPaul E. McKenney[Viewed October 25, 2007]" 672*32300751SPaul E. McKenney,annotation=" 673*32300751SPaul E. McKenney LWN article describing the design of preemptible RCU. 674*32300751SPaul E. McKenney" 675*32300751SPaul E. McKenney} 676*32300751SPaul E. McKenney 677*32300751SPaul E. McKenney######################################################################## 678*32300751SPaul E. McKenney# 679*32300751SPaul E. McKenney# "What is RCU?" LWN series. 680*32300751SPaul E. McKenney# 681*32300751SPaul E. McKenney 682*32300751SPaul E. McKenney@unpublished{PaulEMcKenney2007WhatIsRCUFundamentally 683*32300751SPaul E. McKenney,Author="Paul E. McKenney and Jonathan Walpole" 684*32300751SPaul E. McKenney,Title="What is {RCU}, Fundamentally?" 685*32300751SPaul E. McKenney,month="December" 686*32300751SPaul E. McKenney,day="17" 687*32300751SPaul E. McKenney,year="2007" 688*32300751SPaul E. McKenney,note="Available: 689*32300751SPaul E. McKenney\url{http://lwn.net/Articles/262464/} 690*32300751SPaul E. McKenney[Viewed December 27, 2007]" 691*32300751SPaul E. McKenney,annotation=" 692*32300751SPaul E. McKenney Lays out the three basic components of RCU: (1) publish-subscribe, 693*32300751SPaul E. McKenney (2) wait for pre-existing readers to complete, and (2) maintain 694*32300751SPaul E. McKenney multiple versions. 695*32300751SPaul E. McKenney" 696*32300751SPaul E. McKenney} 697*32300751SPaul E. McKenney 698*32300751SPaul E. McKenney@unpublished{PaulEMcKenney2008WhatIsRCUUsage 699*32300751SPaul E. McKenney,Author="Paul E. McKenney" 700*32300751SPaul E. McKenney,Title="What is {RCU}? Part 2: Usage" 701*32300751SPaul E. McKenney,month="January" 702*32300751SPaul E. McKenney,day="4" 703*32300751SPaul E. McKenney,year="2008" 704*32300751SPaul E. McKenney,note="Available: 705*32300751SPaul E. McKenney\url{http://lwn.net/Articles/263130/} 706*32300751SPaul E. McKenney[Viewed January 4, 2008]" 707*32300751SPaul E. McKenney,annotation=" 708*32300751SPaul E. McKenney Lays out six uses of RCU: 709*32300751SPaul E. McKenney 1. RCU is a Reader-Writer Lock Replacement 710*32300751SPaul E. McKenney 2. RCU is a Restricted Reference-Counting Mechanism 711*32300751SPaul E. McKenney 3. RCU is a Bulk Reference-Counting Mechanism 712*32300751SPaul E. McKenney 4. RCU is a Poor Man's Garbage Collector 713*32300751SPaul E. McKenney 5. RCU is a Way of Providing Existence Guarantees 714*32300751SPaul E. McKenney 6. RCU is a Way of Waiting for Things to Finish 715*32300751SPaul E. McKenney" 716*32300751SPaul E. McKenney} 717*32300751SPaul E. McKenney 718*32300751SPaul E. McKenney@unpublished{PaulEMcKenney2008WhatIsRCUAPI 719*32300751SPaul E. McKenney,Author="Paul E. McKenney" 720*32300751SPaul E. McKenney,Title="{RCU} part 3: the {RCU} {API}" 721*32300751SPaul E. McKenney,month="January" 722*32300751SPaul E. McKenney,day="17" 723*32300751SPaul E. McKenney,year="2008" 724*32300751SPaul E. McKenney,note="Available: 725*32300751SPaul E. McKenney\url{http://lwn.net/Articles/264090/} 726*32300751SPaul E. McKenney[Viewed January 10, 2008]" 727*32300751SPaul E. McKenney,annotation=" 728*32300751SPaul E. McKenney Gives an overview of the Linux-kernel RCU API and a brief annotated RCU 729*32300751SPaul E. McKenney bibliography. 730*32300751SPaul E. McKenney" 731*32300751SPaul E. McKenney} 732*32300751SPaul E. McKenney 733*32300751SPaul E. McKenney@article{DinakarGuniguntala2008IBMSysJ 734*32300751SPaul E. McKenney,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" 735*32300751SPaul E. McKenney,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" 736*32300751SPaul E. McKenney,Year="2008" 737*32300751SPaul E. McKenney,Month="April" 738*32300751SPaul E. McKenney,journal="IBM Systems Journal" 739*32300751SPaul E. McKenney,volume="47" 740*32300751SPaul E. McKenney,number="2" 741*32300751SPaul E. McKenney,pages="@@-@@" 742*32300751SPaul E. McKenney,annotation=" 743*32300751SPaul E. McKenney RCU, realtime RCU, sleepable RCU, performance. 744*32300751SPaul E. McKenney" 745*32300751SPaul E. McKenney} 746