14c62abc9SPaul E. McKenneyRead the Fscking 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 64c62abc9SPaul E. McKenneybe found at http://www.rdrop.com/users/paulmck/RCU/. For others, browsers 74c62abc9SPaul E. McKenneyand search engines will usually find what you are looking for. 81da177e4SLinus Torvalds 91da177e4SLinus TorvaldsThe first thing resembling RCU was published in 1980, when Kung and Lehman 101da177e4SLinus Torvalds[Kung80] recommended use of a garbage collector to defer destruction 111da177e4SLinus Torvaldsof nodes in a parallel binary search tree in order to simplify its 121da177e4SLinus Torvaldsimplementation. This works well in environments that have garbage 13f85d6c71SPaul E. McKenneycollectors, but most production garbage collectors incur significant 14f85d6c71SPaul E. McKenneyoverhead. 151da177e4SLinus Torvalds 161da177e4SLinus TorvaldsIn 1982, Manber and Ladner [Manber82,Manber84] recommended deferring 171da177e4SLinus Torvaldsdestruction until all threads running at that time have terminated, again 181da177e4SLinus Torvaldsfor a parallel binary search tree. This approach works well in systems 191da177e4SLinus Torvaldswith short-lived threads, such as the K42 research operating system. 201da177e4SLinus TorvaldsHowever, Linux has long-lived tasks, so more is needed. 211da177e4SLinus Torvalds 221da177e4SLinus TorvaldsIn 1986, Hennessy, Osisek, and Seigh [Hennessy89] introduced passive 231da177e4SLinus Torvaldsserialization, which is an RCU-like mechanism that relies on the presence 241da177e4SLinus Torvaldsof "quiescent states" in the VM/XA hypervisor that are guaranteed not 251da177e4SLinus Torvaldsto be referencing the data structure. However, this mechanism was not 261da177e4SLinus Torvaldsoptimized for modern computer systems, which is not surprising given 271da177e4SLinus Torvaldsthat these overheads were not so expensive in the mid-80s. Nonetheless, 281da177e4SLinus Torvaldspassive serialization appears to be the first deferred-destruction 294c54005cSPaul E. McKenneymechanism to be used in production. Furthermore, the relevant patent 304c54005cSPaul E. McKenneyhas lapsed, so this approach may be used in non-GPL software, if desired. 314c54005cSPaul E. McKenney(In contrast, implementation of RCU is permitted only in software licensed 324c54005cSPaul E. McKenneyunder either GPL or LGPL. Sorry!!!) 331da177e4SLinus Torvalds 341da177e4SLinus TorvaldsIn 1990, Pugh [Pugh90] noted that explicitly tracking which threads 351da177e4SLinus Torvaldswere reading a given data structure permitted deferred free to operate 361da177e4SLinus Torvaldsin the presence of non-terminating threads. However, this explicit 371da177e4SLinus Torvaldstracking imposes significant read-side overhead, which is undesirable 381da177e4SLinus Torvaldsin read-mostly situations. This algorithm does take pains to avoid 391da177e4SLinus Torvaldswrite-side contention and parallelize the other write-side overheads by 401da177e4SLinus Torvaldsproviding a fine-grained locking design, however, it would be interesting 411da177e4SLinus Torvaldsto see how much of the performance advantage reported in 1990 remains 42*6ae37718SPaul E. McKenneytoday. 431da177e4SLinus Torvalds 441da177e4SLinus TorvaldsAt about this same time, Adams [Adams91] described ``chaotic relaxation'', 451da177e4SLinus Torvaldswhere the normal barriers between successive iterations of convergent 461da177e4SLinus Torvaldsnumerical algorithms are relaxed, so that iteration $n$ might use 471da177e4SLinus Torvaldsdata from iteration $n-1$ or even $n-2$. This introduces error, 481da177e4SLinus Torvaldswhich typically slows convergence and thus increases the number of 491da177e4SLinus Torvaldsiterations required. However, this increase is sometimes more than made 501da177e4SLinus Torvaldsup for by a reduction in the number of expensive barrier operations, 511da177e4SLinus Torvaldswhich are otherwise required to synchronize the threads at the end 521da177e4SLinus Torvaldsof each iteration. Unfortunately, chaotic relaxation requires highly 531da177e4SLinus Torvaldsstructured data, such as the matrices used in scientific programs, and 541da177e4SLinus Torvaldsis thus inapplicable to most data structures in operating-system kernels. 551da177e4SLinus Torvalds 5632300751SPaul E. McKenneyIn 1992, Henry (now Alexia) Massalin completed a dissertation advising 5732300751SPaul E. McKenneyparallel programmers to defer processing when feasible to simplify 5832300751SPaul E. McKenneysynchronization. RCU makes extremely heavy use of this advice. 5932300751SPaul E. McKenney 601da177e4SLinus TorvaldsIn 1993, Jacobson [Jacobson93] verbally described what is perhaps the 611da177e4SLinus Torvaldssimplest deferred-free technique: simply waiting a fixed amount of time 621da177e4SLinus Torvaldsbefore freeing blocks awaiting deferred free. Jacobson did not describe 631da177e4SLinus Torvaldsany write-side changes he might have made in this work using SGI's Irix 641da177e4SLinus Torvaldskernel. Aju John published a similar technique in 1995 [AjuJohn95]. 651da177e4SLinus TorvaldsThis works well if there is a well-defined upper bound on the length of 661da177e4SLinus Torvaldstime that reading threads can hold references, as there might well be in 671da177e4SLinus Torvaldshard real-time systems. However, if this time is exceeded, perhaps due 681da177e4SLinus Torvaldsto preemption, excessive interrupts, or larger-than-anticipated load, 691da177e4SLinus Torvaldsmemory corruption can ensue, with no reasonable means of diagnosis. 701da177e4SLinus TorvaldsJacobson's technique is therefore inappropriate for use in production 711da177e4SLinus Torvaldsoperating-system kernels, except when such kernels can provide hard 721da177e4SLinus Torvaldsreal-time response guarantees for all operations. 731da177e4SLinus Torvalds 741da177e4SLinus TorvaldsAlso in 1995, Pu et al. [Pu95a] applied a technique similar to that of Pugh's 751da177e4SLinus Torvaldsread-side-tracking to permit replugging of algorithms within a commercial 761da177e4SLinus TorvaldsUnix operating system. However, this replugging permitted only a single 771da177e4SLinus Torvaldsreader at a time. The following year, this same group of researchers 781da177e4SLinus Torvaldsextended their technique to allow for multiple readers [Cowan96a]. 791da177e4SLinus TorvaldsTheir approach requires memory barriers (and thus pipeline stalls), 801da177e4SLinus Torvaldsbut reduces memory latency, contention, and locking overheads. 811da177e4SLinus Torvalds 821da177e4SLinus Torvalds1995 also saw the first publication of DYNIX/ptx's RCU mechanism 831da177e4SLinus Torvalds[Slingwine95], which was optimized for modern CPU architectures, 841da177e4SLinus Torvaldsand was successfully applied to a number of situations within the 851da177e4SLinus TorvaldsDYNIX/ptx kernel. The corresponding conference paper appeared in 1998 861da177e4SLinus Torvalds[McKenney98]. 871da177e4SLinus Torvalds 881da177e4SLinus TorvaldsIn 1999, the Tornado and K42 groups described their "generations" 89*6ae37718SPaul E. McKenneymechanism, which is quite similar to RCU [Gamsa99]. These operating 90*6ae37718SPaul E. McKenneysystems made pervasive use of RCU in place of "existence locks", which 91*6ae37718SPaul E. McKenneygreatly simplifies locking hierarchies and helps avoid deadlocks. 921da177e4SLinus Torvalds 931da177e4SLinus Torvalds2001 saw the first RCU presentation involving Linux [McKenney01a] 941da177e4SLinus Torvaldsat OLS. The resulting abundance of RCU patches was presented the 951da177e4SLinus Torvaldsfollowing year [McKenney02a], and use of RCU in dcache was first 961da177e4SLinus Torvaldsdescribed that same year [Linder02a]. 971da177e4SLinus Torvalds 98d19720a9SPaul E. McKenneyAlso in 2002, Michael [Michael02b,Michael02a] presented "hazard-pointer" 99d19720a9SPaul E. McKenneytechniques that defer the destruction of data structures to simplify 100d19720a9SPaul E. McKenneynon-blocking synchronization (wait-free synchronization, lock-free 101d19720a9SPaul E. McKenneysynchronization, and obstruction-free synchronization are all examples of 102d19720a9SPaul E. McKenneynon-blocking synchronization). In particular, this technique eliminates 103d19720a9SPaul E. McKenneylocking, reduces contention, reduces memory latency for readers, and 104d19720a9SPaul E. McKenneyparallelizes pipeline stalls and memory latency for writers. However, 105d19720a9SPaul E. McKenneythese techniques still impose significant read-side overhead in the 106d19720a9SPaul E. McKenneyform of memory barriers. Researchers at Sun worked along similar lines 107f85d6c71SPaul E. McKenneyin the same timeframe [HerlihyLM02]. These techniques can be thought 108f85d6c71SPaul E. McKenneyof as inside-out reference counts, where the count is represented by the 109*6ae37718SPaul E. McKenneynumber of hazard pointers referencing a given data structure rather than 110*6ae37718SPaul E. McKenneythe more conventional counter field within the data structure itself. 111*6ae37718SPaul E. McKenneyThe key advantage of inside-out reference counts is that they can be 112*6ae37718SPaul E. McKenneystored in immortal variables, thus allowing races between access and 113*6ae37718SPaul E. McKenneydeletion to be avoided. 114f85d6c71SPaul E. McKenney 115f85d6c71SPaul E. McKenneyBy the same token, RCU can be thought of as a "bulk reference count", 116f85d6c71SPaul E. McKenneywhere some form of reference counter covers all reference by a given CPU 117f85d6c71SPaul E. McKenneyor thread during a set timeframe. This timeframe is related to, but 118f85d6c71SPaul E. McKenneynot necessarily exactly the same as, an RCU grace period. In classic 119f85d6c71SPaul E. McKenneyRCU, the reference counter is the per-CPU bit in the "bitmask" field, 120f85d6c71SPaul E. McKenneyand each such bit covers all references that might have been made by 121f85d6c71SPaul E. McKenneythe corresponding CPU during the prior grace period. Of course, RCU 122f85d6c71SPaul E. McKenneycan be thought of in other terms as well. 1231da177e4SLinus Torvalds 1241da177e4SLinus TorvaldsIn 2003, the K42 group described how RCU could be used to create 125f85d6c71SPaul E. McKenneyhot-pluggable implementations of operating-system functions [Appavoo03a]. 126f85d6c71SPaul E. McKenneyLater that year saw a paper describing an RCU implementation of System 127f85d6c71SPaul E. McKenneyV IPC [Arcangeli03], and an introduction to RCU in Linux Journal 128f85d6c71SPaul E. McKenney[McKenney03a]. 1291da177e4SLinus Torvalds 1301da177e4SLinus Torvalds2004 has seen a Linux-Journal article on use of RCU in dcache 1311da177e4SLinus Torvalds[McKenney04a], a performance comparison of locking to RCU on several 1321da177e4SLinus Torvaldsdifferent CPUs [McKenney04b], a dissertation describing use of RCU in a 133a83f1fe2SPaul E. McKenneynumber of operating-system kernels [PaulEdwardMcKenneyPhD], a paper 134a83f1fe2SPaul E. McKenneydescribing how to make RCU safe for soft-realtime applications [Sarma04c], 135a83f1fe2SPaul E. McKenneyand a paper describing SELinux performance with RCU [JamesMorris04b]. 1361da177e4SLinus Torvalds 137f85d6c71SPaul E. McKenney2005 brought further adaptation of RCU to realtime use, permitting 138dd81eca8SPaul E. McKenneypreemption of RCU realtime critical sections [PaulMcKenney05a, 139dd81eca8SPaul E. McKenneyPaulMcKenney05b]. 140dd81eca8SPaul E. McKenney 141f85d6c71SPaul E. McKenney2006 saw the first best-paper award for an RCU paper [ThomasEHart2006a], 142f85d6c71SPaul E. McKenneyas well as further work on efficient implementations of preemptible 143f85d6c71SPaul E. McKenneyRCU [PaulEMcKenney2006b], but priority-boosting of RCU read-side critical 144f85d6c71SPaul E. McKenneysections proved elusive. An RCU implementation permitting general 145f85d6c71SPaul E. McKenneyblocking in read-side critical sections appeared [PaulEMcKenney2006c], 146f85d6c71SPaul E. McKenneyRobert Olsson described an RCU-protected trie-hash combination 147f85d6c71SPaul E. McKenney[RobertOlsson2006a]. 148f85d6c71SPaul E. McKenney 14932300751SPaul E. McKenney2007 saw the journal version of the award-winning RCU paper from 2006 15032300751SPaul E. McKenney[ThomasEHart2007a], as well as a paper demonstrating use of Promela 15132300751SPaul E. McKenneyand Spin to mechanically verify an optimization to Oleg Nesterov's 15232300751SPaul E. McKenneyQRCU [PaulEMcKenney2007QRCUspin], a design document describing 15332300751SPaul E. McKenneypreemptible RCU [PaulEMcKenney2007PreemptibleRCU], and the three-part 15432300751SPaul E. McKenneyLWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally, 15532300751SPaul E. McKenneyPaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI]. 156f85d6c71SPaul E. McKenney 1574c54005cSPaul E. McKenney2008 saw a journal paper on real-time RCU [DinakarGuniguntala2008IBMSysJ], 1584c54005cSPaul E. McKenneya history of how Linux changed RCU more than RCU changed Linux 1594c54005cSPaul E. McKenney[PaulEMcKenney2008RCUOSR], and a design overview of hierarchical RCU 1604c54005cSPaul E. McKenney[PaulEMcKenney2008HierarchicalRCU]. 1614c54005cSPaul E. McKenney 1624c54005cSPaul E. McKenney2009 introduced user-level RCU algorithms [PaulEMcKenney2009MaliciousURCU], 1634c54005cSPaul E. McKenneywhich Mathieu Desnoyers is now maintaining [MathieuDesnoyers2009URCU] 1644c54005cSPaul E. McKenney[MathieuDesnoyersPhD]. TINY_RCU [PaulEMcKenney2009BloatWatchRCU] made 1654c54005cSPaul E. McKenneyits appearance, as did expedited RCU [PaulEMcKenney2009expeditedRCU]. 1664c54005cSPaul E. McKenneyThe problem of resizeable RCU-protected hash tables may now be on a path 1674c62abc9SPaul E. McKenneyto a solution [JoshTriplett2009RPHash]. A few academic researchers are now 1684c62abc9SPaul E. McKenneyusing RCU to solve their parallel problems [HariKannan2009DynamicAnalysisRCU]. 1694c62abc9SPaul E. McKenney 1704c62abc9SPaul E. McKenney2010 produced a simpler preemptible-RCU implementation 1714c62abc9SPaul E. McKenneybased on TREE_RCU [PaulEMcKenney2010SimpleOptRCU], lockdep-RCU 1724c62abc9SPaul E. McKenney[PaulEMcKenney2010LockdepRCU], another resizeable RCU-protected hash 1734c62abc9SPaul E. McKenneytable [HerbertXu2010RCUResizeHash] (this one consuming more memory, 1744c62abc9SPaul E. McKenneybut allowing arbitrary changes in hash function, as required for DoS 1754c62abc9SPaul E. McKenneyavoidance in the networking code), realization of the 2009 RCU-protected 1764c62abc9SPaul E. McKenneyhash table with atomic node move [JoshTriplett2010RPHash], an update on 1774c62abc9SPaul E. McKenneythe RCU API [PaulEMcKenney2010RCUAPI]. 1784c62abc9SPaul E. McKenney 1794c62abc9SPaul E. McKenney2011 marked the inclusion of Nick Piggin's fully lockless dentry search 1804c62abc9SPaul E. McKenney[LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS], an RCU-protected red-black 1814c62abc9SPaul E. McKenneytree using software transactional memory to protect concurrent updates 1824c62abc9SPaul E. McKenney(strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of 1834c62abc9SPaul E. McKenneyRCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU 1844c62abc9SPaul E. McKenneytrainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the 185*6ae37718SPaul E. McKenneyLockers" LWN article [NeilBrown2011MeetTheLockers]. Some academic 186*6ae37718SPaul E. McKenneywork looked at debugging uses of RCU [Seyster:2011:RFA:2075416.2075425]. 187*6ae37718SPaul E. McKenney 188*6ae37718SPaul E. McKenneyIn 2012, Josh Triplett received his Ph.D. with his dissertation 189*6ae37718SPaul E. McKenneycovering RCU-protected resizable hash tables and the relationship 190*6ae37718SPaul E. McKenneybetween memory barriers and read-side traversal order: If the updater 191*6ae37718SPaul E. McKenneyis making changes in the opposite direction from the read-side traveral 192*6ae37718SPaul E. McKenneyorder, the updater need only execute a memory-barrier instruction, 193*6ae37718SPaul E. McKenneybut if in the same direction, the updater needs to wait for a grace 194*6ae37718SPaul E. McKenneyperiod between the individual updates [JoshTriplettPhD]. Also in 2012, 195*6ae37718SPaul E. McKenneyafter seventeen years of attempts, an RCU paper made it into a top-flight 196*6ae37718SPaul E. McKenneyacademic journal, IEEE Transactions on Parallel and Distributed Systems 197*6ae37718SPaul E. McKenney[MathieuDesnoyers2012URCU]. A group of researchers in Spain applied 198*6ae37718SPaul E. McKenneyuser-level RCU to crowd simulation [GuillermoVigueras2012RCUCrowd], and 199*6ae37718SPaul E. McKenneyanother group of researchers in Europe produced a formal description of 200*6ae37718SPaul E. McKenneyRCU based on separation logic [AlexeyGotsman2012VerifyGraceExtended], 201*6ae37718SPaul E. McKenneywhich was published in the 2013 European Symposium on Programming 202*6ae37718SPaul E. McKenney[AlexeyGotsman2013ESOPRCU]. 203*6ae37718SPaul E. McKenney 2044c62abc9SPaul E. McKenney 2054c54005cSPaul E. McKenney 2061da177e4SLinus TorvaldsBibtex Entries 2071da177e4SLinus Torvalds 2081da177e4SLinus Torvalds@article{Kung80 2091da177e4SLinus Torvalds,author="H. T. Kung and Q. Lehman" 2100f9574d8SDhaval Giani,title="Concurrent Manipulation of Binary Search Trees" 2111da177e4SLinus Torvalds,Year="1980" 2121da177e4SLinus Torvalds,Month="September" 2131da177e4SLinus Torvalds,journal="ACM Transactions on Database Systems" 2141da177e4SLinus Torvalds,volume="5" 2151da177e4SLinus Torvalds,number="3" 2161da177e4SLinus Torvalds,pages="354-382" 2174c62abc9SPaul E. McKenney,annotation={ 2184c62abc9SPaul E. McKenney Use garbage collector to clean up data after everyone is done with it. 2194c62abc9SPaul E. McKenney . 2204c62abc9SPaul E. McKenney Oldest use of something vaguely resembling RCU that I have found. 221*6ae37718SPaul E. McKenney http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE, 222*6ae37718SPaul E. McKenney [Viewed December 3, 2007] 2234c62abc9SPaul E. McKenney} 2241da177e4SLinus Torvalds} 2251da177e4SLinus Torvalds 2261da177e4SLinus Torvalds@techreport{Manber82 2271da177e4SLinus Torvalds,author="Udi Manber and Richard E. Ladner" 2281da177e4SLinus Torvalds,title="Concurrency Control in a Dynamic Search Structure" 2291da177e4SLinus Torvalds,institution="Department of Computer Science, University of Washington" 2301da177e4SLinus Torvalds,address="Seattle, Washington" 2311da177e4SLinus Torvalds,year="1982" 2321da177e4SLinus Torvalds,number="82-01-01" 2331da177e4SLinus Torvalds,month="January" 2341da177e4SLinus Torvalds,pages="28" 2354c62abc9SPaul E. McKenney,annotation={ 2364c62abc9SPaul E. McKenney . 2374c62abc9SPaul E. McKenney Superseded by Manber84. 2384c62abc9SPaul E. McKenney . 2394c62abc9SPaul E. McKenney Describes concurrent AVL tree implementation. Uses a 2404c62abc9SPaul E. McKenney garbage-collection mechanism to handle concurrent use and deletion 2414c62abc9SPaul E. McKenney of nodes in the tree, but lacks the summary-of-execution-history 2424c62abc9SPaul E. McKenney concept of read-copy locking. 2434c62abc9SPaul E. McKenney . 2444c62abc9SPaul E. McKenney Keeps full list of processes that were active when a given 2454c62abc9SPaul E. McKenney node was to be deleted, and waits until all such processes have 2464c62abc9SPaul E. McKenney -terminated- before allowing this node to be reused. This is 2474c62abc9SPaul E. McKenney not described in great detail -- one could imagine using process 2484c62abc9SPaul E. McKenney IDs for this if the ID space was large enough that overlapping 2494c62abc9SPaul E. McKenney never occurred. 2504c62abc9SPaul E. McKenney . 2514c62abc9SPaul E. McKenney This restriction makes this algorithm unsuitable for use in 2524c62abc9SPaul E. McKenney systems comprised of long-lived processes. It also produces 2534c62abc9SPaul E. McKenney completely unacceptable overhead in systems with large numbers 2544c62abc9SPaul E. McKenney of processes. Finally, it is specific to AVL trees. 2554c62abc9SPaul E. McKenney . 2564c62abc9SPaul E. McKenney Cites Kung80, so not an independent invention, but the first 2574c62abc9SPaul E. McKenney RCU-like usage that does not rely on an automatic garbage 2584c62abc9SPaul E. McKenney collector. 2594c62abc9SPaul E. McKenney} 2601da177e4SLinus Torvalds} 2611da177e4SLinus Torvalds 2621da177e4SLinus Torvalds@article{Manber84 2631da177e4SLinus Torvalds,author="Udi Manber and Richard E. Ladner" 2641da177e4SLinus Torvalds,title="Concurrency Control in a Dynamic Search Structure" 2651da177e4SLinus Torvalds,Year="1984" 2661da177e4SLinus Torvalds,Month="September" 2671da177e4SLinus Torvalds,journal="ACM Transactions on Database Systems" 2681da177e4SLinus Torvalds,volume="9" 2691da177e4SLinus Torvalds,number="3" 2701da177e4SLinus Torvalds,pages="439-455" 2714c62abc9SPaul E. McKenney,annotation={ 2724c62abc9SPaul E. McKenney Describes concurrent AVL tree implementation. Uses a 2734c62abc9SPaul E. McKenney garbage-collection mechanism to handle concurrent use and deletion 2744c62abc9SPaul E. McKenney of nodes in the tree, but lacks the summary-of-execution-history 2754c62abc9SPaul E. McKenney concept of read-copy locking. 2764c62abc9SPaul E. McKenney . 2774c62abc9SPaul E. McKenney Keeps full list of processes that were active when a given 2784c62abc9SPaul E. McKenney node was to be deleted, and waits until all such processes have 2794c62abc9SPaul E. McKenney -terminated- before allowing this node to be reused. This is 2804c62abc9SPaul E. McKenney not described in great detail -- one could imagine using process 2814c62abc9SPaul E. McKenney IDs for this if the ID space was large enough that overlapping 2824c62abc9SPaul E. McKenney never occurred. 2834c62abc9SPaul E. McKenney . 2844c62abc9SPaul E. McKenney This restriction makes this algorithm unsuitable for use in 2854c62abc9SPaul E. McKenney systems comprised of long-lived processes. It also produces 2864c62abc9SPaul E. McKenney completely unacceptable overhead in systems with large numbers 2874c62abc9SPaul E. McKenney of processes. Finally, it is specific to AVL trees. 2884c62abc9SPaul E. McKenney} 2894c62abc9SPaul E. McKenney} 2904c62abc9SPaul E. McKenney 2914c62abc9SPaul E. McKenney@Conference{RichardRashid87a 2924c62abc9SPaul E. McKenney,Author="Richard Rashid and Avadis Tevanian and Michael Young and 2934c62abc9SPaul E. McKenneyDavid Golub and Robert Baron and David Black and William Bolosky and 2944c62abc9SPaul E. McKenneyJonathan Chew" 2954c62abc9SPaul E. McKenney,Title="Machine-Independent Virtual Memory Management for Paged 2964c62abc9SPaul E. McKenneyUniprocessor and Multiprocessor Architectures" 2974c62abc9SPaul E. McKenney,Booktitle="{2\textsuperscript{nd} Symposium on Architectural Support 2984c62abc9SPaul E. McKenneyfor Programming Languages and Operating Systems}" 2994c62abc9SPaul E. McKenney,Publisher="Association for Computing Machinery" 3004c62abc9SPaul E. McKenney,Month="October" 3014c62abc9SPaul E. McKenney,Year="1987" 3024c62abc9SPaul E. McKenney,pages="31-39" 3034c62abc9SPaul E. McKenney,Address="Palo Alto, CA" 3044c62abc9SPaul E. McKenney,note="Available: 3054c62abc9SPaul E. McKenney\url{http://www.cse.ucsc.edu/~randal/221/rashid-machvm.pdf} 3064c62abc9SPaul E. McKenney[Viewed February 17, 2005]" 3074c62abc9SPaul E. McKenney,annotation={ 3084c62abc9SPaul E. McKenney Describes lazy TLB flush, where one waits for each CPU to pass 3094c62abc9SPaul E. McKenney through a scheduling-clock interrupt before reusing a given range 3104c62abc9SPaul E. McKenney of virtual address. Does not describe how one determines that 3114c62abc9SPaul E. McKenney all CPUs have in fact taken such an interrupt, though there are 3124c62abc9SPaul E. McKenney no shortage of straightforward methods for accomplishing this. 3134c62abc9SPaul E. McKenney . 3144c62abc9SPaul E. McKenney Note that it does not make sense to just wait a fixed amount of 3154c62abc9SPaul E. McKenney time, since a given CPU might have interrupts disabled for an 3164c62abc9SPaul E. McKenney extended amount of time. 3174c62abc9SPaul E. McKenney} 3184c62abc9SPaul E. McKenney} 3194c62abc9SPaul E. McKenney 3204c62abc9SPaul E. McKenney@article{BarbaraLiskov1988ArgusCACM 3214c62abc9SPaul E. McKenney,author = {Barbara Liskov} 3224c62abc9SPaul E. McKenney,title = {Distributed programming in {Argus}} 3234c62abc9SPaul E. McKenney,journal = {Commun. ACM} 3244c62abc9SPaul E. McKenney,volume = {31} 3254c62abc9SPaul E. McKenney,number = {3} 3264c62abc9SPaul E. McKenney,year = {1988} 3274c62abc9SPaul E. McKenney,issn = {0001-0782} 3284c62abc9SPaul E. McKenney,pages = {300--312} 3294c62abc9SPaul E. McKenney,doi = {http://doi.acm.org/10.1145/42392.42399} 3304c62abc9SPaul E. McKenney,publisher = {ACM} 3314c62abc9SPaul E. McKenney,address = {New York, NY, USA} 3324c62abc9SPaul E. McKenney,annotation={ 3334c62abc9SPaul E. McKenney At the top of page 307: "Conflicts with deposits and withdrawals 3344c62abc9SPaul E. McKenney are necessary if the reported total is to be up to date. They 3354c62abc9SPaul E. McKenney could be avoided by having total return a sum that is slightly 3364c62abc9SPaul E. McKenney out of date." Relies on semantics -- approximate numerical 3374c62abc9SPaul E. McKenney values sometimes OK. 3384c62abc9SPaul E. McKenney} 3391da177e4SLinus Torvalds} 3401da177e4SLinus Torvalds 3411da177e4SLinus Torvalds@techreport{Hennessy89 3421da177e4SLinus Torvalds,author="James P. Hennessy and Damian L. Osisek and Joseph W. {Seigh II}" 3431da177e4SLinus Torvalds,title="Passive Serialization in a Multitasking Environment" 3441da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 3451da177e4SLinus Torvalds,address="Washington, DC" 3461da177e4SLinus Torvalds,year="1989" 3471da177e4SLinus Torvalds,number="US Patent 4,809,168 (lapsed)" 3481da177e4SLinus Torvalds,month="February" 3491da177e4SLinus Torvalds,pages="11" 3501da177e4SLinus Torvalds} 3511da177e4SLinus Torvalds 3521da177e4SLinus Torvalds@techreport{Pugh90 3531da177e4SLinus Torvalds,author="William Pugh" 3541da177e4SLinus Torvalds,title="Concurrent Maintenance of Skip Lists" 3551da177e4SLinus Torvalds,institution="Institute of Advanced Computer Science Studies, Department of Computer Science, University of Maryland" 3561da177e4SLinus Torvalds,address="College Park, Maryland" 3571da177e4SLinus Torvalds,year="1990" 3581da177e4SLinus Torvalds,number="CS-TR-2222.1" 3591da177e4SLinus Torvalds,month="June" 3604c62abc9SPaul E. McKenney,annotation={ 3614c62abc9SPaul E. McKenney Concurrent access to skip lists. Has both weak and strong search. 3624c62abc9SPaul E. McKenney Uses concept of ``garbage queue'', but has no real way of cleaning 3634c62abc9SPaul E. McKenney the garbage efficiently. 3644c62abc9SPaul E. McKenney . 3654c62abc9SPaul E. McKenney Appears to be an independent invention of an RCU-like mechanism. 3664c62abc9SPaul E. McKenney} 3671da177e4SLinus Torvalds} 3681da177e4SLinus Torvalds 369*6ae37718SPaul E. McKenney# Was Adams91, see also syncrefs.bib. 370*6ae37718SPaul E. McKenney@Book{Andrews91textbook 371*6ae37718SPaul E. McKenney,Author="Gregory R. Andrews" 3721da177e4SLinus Torvalds,title="Concurrent Programming, Principles, and Practices" 3731da177e4SLinus Torvalds,Publisher="Benjamin Cummins" 3741da177e4SLinus Torvalds,Year="1991" 3754c62abc9SPaul E. McKenney,annotation={ 3764c62abc9SPaul E. McKenney Has a few paragraphs describing ``chaotic relaxation'', a 3774c62abc9SPaul E. McKenney numerical analysis technique that allows multiprocessors to 3784c62abc9SPaul E. McKenney avoid synchronization overhead by using possibly-stale data. 3794c62abc9SPaul E. McKenney . 3804c62abc9SPaul E. McKenney Seems like this is descended from yet another independent 3814c62abc9SPaul E. McKenney invention of RCU-like function -- but this is restricted 3824c62abc9SPaul E. McKenney in that reclamation is not necessary. 3831da177e4SLinus Torvalds} 38432300751SPaul E. McKenney} 38532300751SPaul E. McKenney 3861da177e4SLinus Torvalds@unpublished{Jacobson93 3871da177e4SLinus Torvalds,author="Van Jacobson" 3881da177e4SLinus Torvalds,title="Avoid Read-Side Locking Via Delayed Free" 3891da177e4SLinus Torvalds,year="1993" 3901da177e4SLinus Torvalds,month="September" 3914c62abc9SPaul E. McKenney,note="private communication" 3924c62abc9SPaul E. McKenney,annotation={ 3934c62abc9SPaul E. McKenney Use fixed time delay to approximate grace period. Very simple, 3944c62abc9SPaul E. McKenney but subject to random memory corruption under heavy load. 3954c62abc9SPaul E. McKenney . 3964c62abc9SPaul E. McKenney Independent invention of RCU-like mechanism. 3974c62abc9SPaul E. McKenney} 3981da177e4SLinus Torvalds} 3991da177e4SLinus Torvalds 4001da177e4SLinus Torvalds@Conference{AjuJohn95 4011da177e4SLinus Torvalds,Author="Aju John" 4021da177e4SLinus Torvalds,Title="Dynamic vnodes -- Design and Implementation" 4031da177e4SLinus Torvalds,Booktitle="{USENIX Winter 1995}" 4041da177e4SLinus Torvalds,Publisher="USENIX Association" 4051da177e4SLinus Torvalds,Month="January" 4061da177e4SLinus Torvalds,Year="1995" 4071da177e4SLinus Torvalds,pages="11-23" 4081da177e4SLinus Torvalds,Address="New Orleans, LA" 4094c62abc9SPaul E. McKenney,note="Available: 4104c62abc9SPaul E. McKenney\url{https://www.usenix.org/publications/library/proceedings/neworl/full_papers/john.a} 4114c62abc9SPaul E. McKenney[Viewed October 1, 2010]" 4124c62abc9SPaul E. McKenney,annotation={ 4134c62abc9SPaul E. McKenney Age vnodes out of the cache, and have a fixed time set by a kernel 4144c62abc9SPaul E. McKenney parameter. Not clear that all races were in fact correctly handled. 4154c62abc9SPaul E. McKenney Used a 20-minute time by default, which would most definitely not 4164c62abc9SPaul E. McKenney be suitable during DoS attacks or virus scans. 4174c62abc9SPaul E. McKenney . 4184c62abc9SPaul E. McKenney Apparently independent invention of RCU-like mechanism. 4194c62abc9SPaul E. McKenney} 4201da177e4SLinus Torvalds} 4211da177e4SLinus Torvalds 422*6ae37718SPaul E. McKenney@conference{Pu95a 423*6ae37718SPaul E. McKenney,Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and 424f85d6c71SPaul E. McKenneyCrispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and 425*6ae37718SPaul E. McKenneyKe Zhang" 426*6ae37718SPaul E. McKenney,Title = "Optimistic Incremental Specialization: Streamlining a Commercial 427*6ae37718SPaul E. McKenney,Operating System" 428*6ae37718SPaul E. McKenney,Booktitle = "15\textsuperscript{th} ACM Symposium on 429*6ae37718SPaul E. McKenney,Operating Systems Principles (SOSP'95)" 430*6ae37718SPaul E. McKenney,address = "Copper Mountain, CO" 431*6ae37718SPaul E. McKenney,month="December" 432*6ae37718SPaul E. McKenney,year="1995" 433*6ae37718SPaul E. McKenney,pages="314-321" 434*6ae37718SPaul E. McKenney,annotation={ 435f85d6c71SPaul E. McKenney Uses a replugger, but with a flag to signal when people are 436f85d6c71SPaul E. McKenney using the resource at hand. Only one reader at a time. 437*6ae37718SPaul E. McKenney} 438f85d6c71SPaul E. McKenney} 439f85d6c71SPaul E. McKenney 440*6ae37718SPaul E. McKenney@conference{Cowan96a 441*6ae37718SPaul E. McKenney,Author = "Crispin Cowan and Tito Autrey and Charles Krasic and 442*6ae37718SPaul E. McKenney,Calton Pu and Jonathan Walpole" 443*6ae37718SPaul E. McKenney,Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System" 444*6ae37718SPaul E. McKenney,Booktitle = "International Conference on Configurable Distributed Systems 445*6ae37718SPaul E. McKenney(ICCDS'96)" 446*6ae37718SPaul E. McKenney,address = "Annapolis, MD" 447*6ae37718SPaul E. McKenney,month="May" 448*6ae37718SPaul E. McKenney,year="1996" 449*6ae37718SPaul E. McKenney,pages="108" 450*6ae37718SPaul E. McKenney,isbn="0-8186-7395-8" 451*6ae37718SPaul E. McKenney,annotation={ 452f85d6c71SPaul E. McKenney Uses a replugger, but with a counter to signal when people are 453f85d6c71SPaul E. McKenney using the resource at hand. Allows multiple readers. 454*6ae37718SPaul E. McKenney} 455f85d6c71SPaul E. McKenney} 456f85d6c71SPaul E. McKenney 4571da177e4SLinus Torvalds@techreport{Slingwine95 4581da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 4591da177e4SLinus Torvalds,title="Apparatus and Method for Achieving Reduced Overhead Mutual 4601da177e4SLinus TorvaldsExclusion and Maintaining Coherency in a Multiprocessor System 4611da177e4SLinus TorvaldsUtilizing Execution History and Thread Monitoring" 4621da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 4631da177e4SLinus Torvalds,address="Washington, DC" 4641da177e4SLinus Torvalds,year="1995" 4654c62abc9SPaul E. McKenney,number="US Patent 5,442,758" 4661da177e4SLinus Torvalds,month="August" 4674c62abc9SPaul E. McKenney,annotation={ 4684c62abc9SPaul E. McKenney Describes the parallel RCU infrastructure. Includes NUMA aspect 4694c62abc9SPaul E. McKenney (structure of bitmap can reflect bus structure of computer system). 4704c62abc9SPaul E. McKenney . 4714c62abc9SPaul E. McKenney Another independent invention of an RCU-like mechanism, but the 4724c62abc9SPaul E. McKenney "real" RCU this time! 4734c62abc9SPaul E. McKenney} 4741da177e4SLinus Torvalds} 4751da177e4SLinus Torvalds 4761da177e4SLinus Torvalds@techreport{Slingwine97 4771da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 4784c62abc9SPaul E. McKenney,title="Method for Maintaining Data Coherency Using Thread Activity 4794c62abc9SPaul E. McKenneySummaries in a Multicomputer System" 4801da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 4811da177e4SLinus Torvalds,address="Washington, DC" 4821da177e4SLinus Torvalds,year="1997" 4834c62abc9SPaul E. McKenney,number="US Patent 5,608,893" 4841da177e4SLinus Torvalds,month="March" 4854c62abc9SPaul E. McKenney,pages="19" 4864c62abc9SPaul E. McKenney,annotation={ 4874c62abc9SPaul E. McKenney Describes use of RCU to synchronize data between a pair of 4884c62abc9SPaul E. McKenney SMP/NUMA computer systems. 4894c62abc9SPaul E. McKenney} 4901da177e4SLinus Torvalds} 4911da177e4SLinus Torvalds 4921da177e4SLinus Torvalds@techreport{Slingwine98 4931da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 4944c62abc9SPaul E. McKenney,title="Apparatus and Method for Achieving Reduced Overhead Mutual 4954c62abc9SPaul E. McKenneyExclusion and Maintaining Coherency in a Multiprocessor System 4964c62abc9SPaul E. McKenneyUtilizing Execution History and Thread Monitoring" 4971da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 4981da177e4SLinus Torvalds,address="Washington, DC" 4991da177e4SLinus Torvalds,year="1998" 5004c62abc9SPaul E. McKenney,number="US Patent 5,727,209" 5011da177e4SLinus Torvalds,month="March" 5024c62abc9SPaul E. McKenney,annotation={ 5034c62abc9SPaul E. McKenney Describes doing an atomic update by copying the data item and 5044c62abc9SPaul E. McKenney then substituting it into the data structure. 5054c62abc9SPaul E. McKenney} 5061da177e4SLinus Torvalds} 5071da177e4SLinus Torvalds 5081da177e4SLinus Torvalds@Conference{McKenney98 5091da177e4SLinus Torvalds,Author="Paul E. McKenney and John D. Slingwine" 5101da177e4SLinus Torvalds,Title="Read-Copy Update: Using Execution History to Solve Concurrency 5111da177e4SLinus TorvaldsProblems" 5121da177e4SLinus Torvalds,Booktitle="{Parallel and Distributed Computing and Systems}" 5131da177e4SLinus Torvalds,Month="October" 5141da177e4SLinus Torvalds,Year="1998" 5151da177e4SLinus Torvalds,pages="509-518" 5161da177e4SLinus Torvalds,Address="Las Vegas, NV" 5174c62abc9SPaul E. McKenney,annotation={ 5184c62abc9SPaul E. McKenney Describes and analyzes RCU mechanism in DYNIX/ptx. Describes 5194c62abc9SPaul E. McKenney application to linked list update and log-buffer flushing. 5204c62abc9SPaul E. McKenney Defines 'quiescent state'. Includes both measured and analytic 5214c62abc9SPaul E. McKenney evaluation. 522*6ae37718SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf 523*6ae37718SPaul E. McKenney [Viewed December 3, 2007] 5244c62abc9SPaul E. McKenney} 5251da177e4SLinus Torvalds} 5261da177e4SLinus Torvalds 5271da177e4SLinus Torvalds@Conference{Gamsa99 5281da177e4SLinus Torvalds,Author="Ben Gamsa and Orran Krieger and Jonathan Appavoo and Michael Stumm" 5291da177e4SLinus Torvalds,Title="Tornado: Maximizing Locality and Concurrency in a Shared Memory 5301da177e4SLinus TorvaldsMultiprocessor Operating System" 5311da177e4SLinus Torvalds,Booktitle="{Proceedings of the 3\textsuperscript{rd} Symposium on 5321da177e4SLinus TorvaldsOperating System Design and Implementation}" 5331da177e4SLinus Torvalds,Month="February" 5341da177e4SLinus Torvalds,Year="1999" 5351da177e4SLinus Torvalds,pages="87-100" 5361da177e4SLinus Torvalds,Address="New Orleans, LA" 5374c62abc9SPaul E. McKenney,annotation={ 5384c62abc9SPaul E. McKenney Use of RCU-like facility in K42/Tornado. Another independent 5394c62abc9SPaul E. McKenney invention of RCU. 5404c62abc9SPaul E. McKenney See especially pages 7-9 (Section 5). 541*6ae37718SPaul E. McKenney http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf 542*6ae37718SPaul E. McKenney [Viewed August 30, 2006] 5434c62abc9SPaul E. McKenney} 5444c62abc9SPaul E. McKenney} 5454c62abc9SPaul E. McKenney 5464c62abc9SPaul E. McKenney@unpublished{RustyRussell2000a 5474c62abc9SPaul E. McKenney,Author="Rusty Russell" 5484c62abc9SPaul E. McKenney,Title="Re: modular net drivers" 5494c62abc9SPaul E. McKenney,month="June" 5504c62abc9SPaul E. McKenney,year="2000" 5514c62abc9SPaul E. McKenney,day="23" 5524c62abc9SPaul E. McKenney,note="Available: 5534c62abc9SPaul E. McKenney\url{http://oss.sgi.com/projects/netdev/archive/2000-06/msg00250.html} 5544c62abc9SPaul E. McKenney[Viewed April 10, 2006]" 5554c62abc9SPaul E. McKenney,annotation={ 5564c62abc9SPaul E. McKenney Proto-RCU proposal from Phil Rumpf and Rusty Russell. 5574c62abc9SPaul E. McKenney Yet another independent invention of RCU. 5584c62abc9SPaul E. McKenney Outline of algorithm to unload modules... 5594c62abc9SPaul E. McKenney . 5604c62abc9SPaul E. McKenney Appeared on net-dev mailing list. 5614c62abc9SPaul E. McKenney} 5624c62abc9SPaul E. McKenney} 5634c62abc9SPaul E. McKenney 5644c62abc9SPaul E. McKenney@unpublished{RustyRussell2000b 5654c62abc9SPaul E. McKenney,Author="Rusty Russell" 5664c62abc9SPaul E. McKenney,Title="Re: modular net drivers" 5674c62abc9SPaul E. McKenney,month="June" 5684c62abc9SPaul E. McKenney,year="2000" 5694c62abc9SPaul E. McKenney,day="24" 5704c62abc9SPaul E. McKenney,note="Available: 5714c62abc9SPaul E. McKenney\url{http://oss.sgi.com/projects/netdev/archive/2000-06/msg00254.html} 5724c62abc9SPaul E. McKenney[Viewed April 10, 2006]" 5734c62abc9SPaul E. McKenney,annotation={ 5744c62abc9SPaul E. McKenney Proto-RCU proposal from Phil Rumpf and Rusty Russell. 5754c62abc9SPaul E. McKenney . 5764c62abc9SPaul E. McKenney Appeared on net-dev mailing list. 5774c62abc9SPaul E. McKenney} 5784c62abc9SPaul E. McKenney} 5794c62abc9SPaul E. McKenney 5804c62abc9SPaul E. McKenney@unpublished{McKenney01b 5814c62abc9SPaul E. McKenney,Author="Paul E. McKenney and Dipankar Sarma" 5824c62abc9SPaul E. McKenney,Title="Read-Copy Update Mutual Exclusion in {Linux}" 5834c62abc9SPaul E. McKenney,month="February" 5844c62abc9SPaul E. McKenney,year="2001" 5854c62abc9SPaul E. McKenney,note="Available: 5864c62abc9SPaul E. McKenney\url{http://lse.sourceforge.net/locking/rcu/rcupdate_doc.html} 5874c62abc9SPaul E. McKenney[Viewed October 18, 2004]" 5884c62abc9SPaul E. McKenney,annotation={ 5894c62abc9SPaul E. McKenney Prototypical Linux documentation for RCU. 5904c62abc9SPaul E. McKenney} 5911da177e4SLinus Torvalds} 5921da177e4SLinus Torvalds 5931da177e4SLinus Torvalds@techreport{Slingwine01 5941da177e4SLinus Torvalds,author="John D. Slingwine and Paul E. McKenney" 5954c62abc9SPaul E. McKenney,title="Apparatus and Method for Achieving Reduced Overhead Mutual 5964c62abc9SPaul E. McKenneyExclusion and Maintaining Coherency in a Multiprocessor System 5974c62abc9SPaul E. McKenneyUtilizing Execution History and Thread Monitoring" 5981da177e4SLinus Torvalds,institution="US Patent and Trademark Office" 5991da177e4SLinus Torvalds,address="Washington, DC" 6001da177e4SLinus Torvalds,year="2001" 6014c62abc9SPaul E. McKenney,number="US Patent 6,219,690" 6021da177e4SLinus Torvalds,month="April" 6034c62abc9SPaul E. McKenney,annotation={ 6044c62abc9SPaul E. McKenney 'Change in mode' aspect of RCU. Can be thought of as a lazy barrier. 6054c62abc9SPaul E. McKenney} 6061da177e4SLinus Torvalds} 6071da177e4SLinus Torvalds 6081da177e4SLinus Torvalds@Conference{McKenney01a 6091da177e4SLinus Torvalds,Author="Paul E. McKenney and Jonathan Appavoo and Andi Kleen and 6101da177e4SLinus TorvaldsOrran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" 6111da177e4SLinus Torvalds,Title="Read-Copy Update" 6121da177e4SLinus Torvalds,Booktitle="{Ottawa Linux Symposium}" 6131da177e4SLinus Torvalds,Month="July" 6141da177e4SLinus Torvalds,Year="2001" 6151da177e4SLinus Torvalds,note="Available: 6161da177e4SLinus Torvalds\url{http://www.linuxsymposium.org/2001/abstracts/readcopy.php} 6174c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/rclock_OLS.2001.05.01c.pdf} 6181da177e4SLinus Torvalds[Viewed June 23, 2004]" 6194c62abc9SPaul E. McKenney,annotation={ 6204c62abc9SPaul E. McKenney Described RCU, and presented some patches implementing and using 6214c62abc9SPaul E. McKenney it in the Linux kernel. 6224c62abc9SPaul E. McKenney} 6234c62abc9SPaul E. McKenney} 6244c62abc9SPaul E. McKenney 6254c62abc9SPaul E. McKenney@unpublished{McKenney01f 6264c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 6274c62abc9SPaul E. McKenney,Title="{RFC:} patch to allow lock-free traversal of lists with insertion" 6284c62abc9SPaul E. McKenney,month="October" 6294c62abc9SPaul E. McKenney,year="2001" 6304c62abc9SPaul E. McKenney,note="Available: 6314c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2} 6324c62abc9SPaul E. McKenney[Viewed June 23, 2004]" 633*6ae37718SPaul E. McKenney,annotation={ 6344c62abc9SPaul E. McKenney Memory-barrier and Alpha thread. 100 messages, not too bad... 635*6ae37718SPaul E. McKenney} 6361da177e4SLinus Torvalds} 6371da177e4SLinus Torvalds 6384c62abc9SPaul E. McKenney@unpublished{Spraul01 6394c62abc9SPaul E. McKenney,Author="Manfred Spraul" 6404c62abc9SPaul E. McKenney,Title="Re: {RFC:} patch to allow lock-free traversal of lists with insertion" 6414c62abc9SPaul E. McKenney,month="October" 6424c62abc9SPaul E. McKenney,year="2001" 6434c62abc9SPaul E. McKenney,note="Available: 6444c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2} 6454c62abc9SPaul E. McKenney[Viewed June 23, 2004]" 646*6ae37718SPaul E. McKenney,annotation={ 6474c62abc9SPaul E. McKenney Suggested burying memory barriers in Linux's list-manipulation 6484c62abc9SPaul E. McKenney primitives. 649*6ae37718SPaul E. McKenney} 6504c62abc9SPaul E. McKenney} 6514c62abc9SPaul E. McKenney 6524c62abc9SPaul E. McKenney@unpublished{LinusTorvalds2001a 6534c62abc9SPaul E. McKenney,Author="Linus Torvalds" 6544c62abc9SPaul E. McKenney,Title="{Re:} {[Lse-tech]} {Re:} {RFC:} patch to allow lock-free traversal of lists with insertion" 6554c62abc9SPaul E. McKenney,month="October" 6564c62abc9SPaul E. McKenney,year="2001" 6574c62abc9SPaul E. McKenney,note="Available: 6584c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2001/10/13/105} 6594c62abc9SPaul E. McKenney[Viewed August 21, 2004]" 660*6ae37718SPaul E. McKenney,annotation={ 661*6ae37718SPaul E. McKenney} 6624c62abc9SPaul E. McKenney} 6634c62abc9SPaul E. McKenney 6644c62abc9SPaul E. McKenney@unpublished{Blanchard02a 6654c62abc9SPaul E. McKenney,Author="Anton Blanchard" 6664c62abc9SPaul E. McKenney,Title="some RCU dcache and ratcache results" 6674c62abc9SPaul E. McKenney,month="March" 6684c62abc9SPaul E. McKenney,year="2002" 6694c62abc9SPaul E. McKenney,note="Available: 6704c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=101637107412972&w=2} 6714c62abc9SPaul E. McKenney[Viewed October 18, 2004]" 6724c62abc9SPaul E. McKenney} 6734c62abc9SPaul E. McKenney 6741da177e4SLinus Torvalds@Conference{Linder02a 6751da177e4SLinus Torvalds,Author="Hanna Linder and Dipankar Sarma and Maneesh Soni" 6761da177e4SLinus Torvalds,Title="Scalability of the Directory Entry Cache" 6771da177e4SLinus Torvalds,Booktitle="{Ottawa Linux Symposium}" 6781da177e4SLinus Torvalds,Month="June" 6791da177e4SLinus Torvalds,Year="2002" 6801da177e4SLinus Torvalds,pages="289-300" 681*6ae37718SPaul E. McKenney,annotation={ 6824c62abc9SPaul E. McKenney Measured scalability of Linux 2.4 kernel's directory-entry cache 6834c62abc9SPaul E. McKenney (dcache), and measured some scalability enhancements. 684*6ae37718SPaul E. McKenney} 6851da177e4SLinus Torvalds} 6861da177e4SLinus Torvalds 6871da177e4SLinus Torvalds@Conference{McKenney02a 6881da177e4SLinus Torvalds,Author="Paul E. McKenney and Dipankar Sarma and 6891da177e4SLinus TorvaldsAndrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" 6901da177e4SLinus Torvalds,Title="Read-Copy Update" 6911da177e4SLinus Torvalds,Booktitle="{Ottawa Linux Symposium}" 6921da177e4SLinus Torvalds,Month="June" 6931da177e4SLinus Torvalds,Year="2002" 6941da177e4SLinus Torvalds,pages="338-367" 6951da177e4SLinus Torvalds,note="Available: 6961da177e4SLinus Torvalds\url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} 6971da177e4SLinus Torvalds[Viewed June 23, 2004]" 698*6ae37718SPaul E. McKenney,annotation={ 6994c62abc9SPaul E. McKenney Presented and compared a number of RCU implementations for the 7004c62abc9SPaul E. McKenney Linux kernel. 701*6ae37718SPaul E. McKenney} 702f85d6c71SPaul E. McKenney} 703f85d6c71SPaul E. McKenney 7044c62abc9SPaul E. McKenney@unpublished{Sarma02a 7054c62abc9SPaul E. McKenney,Author="Dipankar Sarma" 7064c62abc9SPaul E. McKenney,Title="specweb99: dcache scalability results" 7074c62abc9SPaul E. McKenney,month="July" 7084c62abc9SPaul E. McKenney,year="2002" 7094c62abc9SPaul E. McKenney,note="Available: 7104c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2} 7114c62abc9SPaul E. McKenney[Viewed June 23, 2004]" 712*6ae37718SPaul E. McKenney,annotation={ 7134c62abc9SPaul E. McKenney Compare fastwalk and RCU for dcache. RCU won. 714*6ae37718SPaul E. McKenney} 715f85d6c71SPaul E. McKenney} 716f85d6c71SPaul E. McKenney 7174c62abc9SPaul E. McKenney@unpublished{Barbieri02 7184c62abc9SPaul E. McKenney,Author="Luca Barbieri" 7194c62abc9SPaul E. McKenney,Title="Re: {[PATCH]} Initial support for struct {vfs\_cred}" 7204c62abc9SPaul E. McKenney,month="August" 7214c62abc9SPaul E. McKenney,year="2002" 7224c62abc9SPaul E. McKenney,note="Available: 7234c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2} 7244c62abc9SPaul E. McKenney[Viewed: June 23, 2004]" 725*6ae37718SPaul E. McKenney,annotation={ 7264c62abc9SPaul E. McKenney Suggested RCU for vfs\_shared\_cred. 727*6ae37718SPaul E. McKenney} 7284c62abc9SPaul E. McKenney} 7294c62abc9SPaul E. McKenney 7304c62abc9SPaul E. McKenney@unpublished{Dickins02a 7314c62abc9SPaul E. McKenney,author="Hugh Dickins" 7324c62abc9SPaul E. McKenney,title="Use RCU for System-V IPC" 7334c62abc9SPaul E. McKenney,year="2002" 734f85d6c71SPaul E. McKenney,month="October" 7354c62abc9SPaul E. McKenney,note="private communication" 7364c62abc9SPaul E. McKenney} 7374c62abc9SPaul E. McKenney 7384c62abc9SPaul E. McKenney@unpublished{Sarma02b 7394c62abc9SPaul E. McKenney,Author="Dipankar Sarma" 7404c62abc9SPaul E. McKenney,Title="Some dcache\_rcu benchmark numbers" 7414c62abc9SPaul E. McKenney,month="October" 7424c62abc9SPaul E. McKenney,year="2002" 7434c62abc9SPaul E. McKenney,note="Available: 7444c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2} 7454c62abc9SPaul E. McKenney[Viewed June 23, 2004]" 746*6ae37718SPaul E. McKenney,annotation={ 7474c62abc9SPaul E. McKenney Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x, 7484c62abc9SPaul E. McKenney 2x, and 4x systems. RCU does no harm, and helps on 16x. 749*6ae37718SPaul E. McKenney} 7504c62abc9SPaul E. McKenney} 7514c62abc9SPaul E. McKenney 7524c62abc9SPaul E. McKenney@unpublished{LinusTorvalds2003a 7534c62abc9SPaul E. McKenney,Author="Linus Torvalds" 7544c62abc9SPaul E. McKenney,Title="Re: {[PATCH]} small fixes in brlock.h" 7554c62abc9SPaul E. McKenney,month="March" 7564c62abc9SPaul E. McKenney,year="2003" 7574c62abc9SPaul E. McKenney,note="Available: 7584c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2003/3/9/205} 7594c62abc9SPaul E. McKenney[Viewed March 13, 2006]" 760*6ae37718SPaul E. McKenney,annotation={ 7614c62abc9SPaul E. McKenney Linus suggests replacing brlock with RCU and/or seqlocks: 7624c62abc9SPaul E. McKenney . 7634c62abc9SPaul E. McKenney 'It's entirely possible that the current user could be replaced 7644c62abc9SPaul E. McKenney by RCU and/or seqlocks, and we could get rid of brlocks entirely.' 7654c62abc9SPaul E. McKenney . 7664c62abc9SPaul E. McKenney Steve Hemminger responds by replacing them with RCU. 767*6ae37718SPaul E. McKenney} 768f85d6c71SPaul E. McKenney} 769f85d6c71SPaul E. McKenney 7701da177e4SLinus Torvalds@article{Appavoo03a 7711da177e4SLinus Torvalds,author="J. Appavoo and K. Hui and C. A. N. Soules and R. W. Wisniewski and 7721da177e4SLinus TorvaldsD. M. {Da Silva} and O. Krieger and M. A. Auslander and D. J. Edelsohn and 7731da177e4SLinus TorvaldsB. Gamsa and G. R. Ganger and P. McKenney and M. Ostrowski and 7741da177e4SLinus TorvaldsB. Rosenburg and M. Stumm and J. Xenidis" 7751da177e4SLinus Torvalds,title="Enabling Autonomic Behavior in Systems Software With Hot Swapping" 7761da177e4SLinus Torvalds,Year="2003" 7771da177e4SLinus Torvalds,Month="January" 7781da177e4SLinus Torvalds,journal="IBM Systems Journal" 7791da177e4SLinus Torvalds,volume="42" 7801da177e4SLinus Torvalds,number="1" 7811da177e4SLinus Torvalds,pages="60-76" 782*6ae37718SPaul E. McKenney,annotation={ 7834c62abc9SPaul E. McKenney Use of RCU to enable hot-swapping for autonomic behavior in K42. 784*6ae37718SPaul E. McKenney} 7854c62abc9SPaul E. McKenney} 7864c62abc9SPaul E. McKenney 7874c62abc9SPaul E. McKenney@unpublished{Seigh03 7884c62abc9SPaul E. McKenney,author="Joseph W. {Seigh II}" 7894c62abc9SPaul E. McKenney,title="Read Copy Update" 7904c62abc9SPaul E. McKenney,Year="2003" 7914c62abc9SPaul E. McKenney,Month="March" 7924c62abc9SPaul E. McKenney,note="email correspondence" 793*6ae37718SPaul E. McKenney,annotation={ 7944c62abc9SPaul E. McKenney Described the relationship of the VM/XA passive serialization to RCU. 795*6ae37718SPaul E. McKenney} 7961da177e4SLinus Torvalds} 7971da177e4SLinus Torvalds 7981da177e4SLinus Torvalds@Conference{Arcangeli03 7991da177e4SLinus Torvalds,Author="Andrea Arcangeli and Mingming Cao and Paul E. McKenney and 8001da177e4SLinus TorvaldsDipankar Sarma" 8011da177e4SLinus Torvalds,Title="Using Read-Copy Update Techniques for {System V IPC} in the 8021da177e4SLinus Torvalds{Linux} 2.5 Kernel" 8031da177e4SLinus Torvalds,Booktitle="Proceedings of the 2003 USENIX Annual Technical Conference 8041da177e4SLinus Torvalds(FREENIX Track)" 8051da177e4SLinus Torvalds,Publisher="USENIX Association" 8061da177e4SLinus Torvalds,year="2003" 8071da177e4SLinus Torvalds,month="June" 8081da177e4SLinus Torvalds,pages="297-310" 809*6ae37718SPaul E. McKenney,annotation={ 8104c62abc9SPaul E. McKenney Compared updated RCU implementations for the Linux kernel, and 8114c62abc9SPaul E. McKenney described System V IPC use of RCU, including order-of-magnitude 8124c62abc9SPaul E. McKenney performance improvements. 813*6ae37718SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf 814*6ae37718SPaul E. McKenney} 8154c62abc9SPaul E. McKenney} 8164c62abc9SPaul E. McKenney 8174c62abc9SPaul E. McKenney@Conference{Soules03a 8184c62abc9SPaul E. McKenney,Author="Craig A. N. Soules and Jonathan Appavoo and Kevin Hui and 8194c62abc9SPaul E. McKenneyDilma {Da Silva} and Gregory R. Ganger and Orran Krieger and 8204c62abc9SPaul E. McKenneyMichael Stumm and Robert W. Wisniewski and Marc Auslander and 8214c62abc9SPaul E. McKenneyMichal Ostrowski and Bryan Rosenburg and Jimi Xenidis" 8224c62abc9SPaul E. McKenney,Title="System Support for Online Reconfiguration" 8234c62abc9SPaul E. McKenney,Booktitle="Proceedings of the 2003 USENIX Annual Technical Conference" 8244c62abc9SPaul E. McKenney,Publisher="USENIX Association" 8254c62abc9SPaul E. McKenney,year="2003" 8264c62abc9SPaul E. McKenney,month="June" 8274c62abc9SPaul E. McKenney,pages="141-154" 8281da177e4SLinus Torvalds} 8291da177e4SLinus Torvalds 8301da177e4SLinus Torvalds@article{McKenney03a 8311da177e4SLinus Torvalds,author="Paul E. McKenney" 8321da177e4SLinus Torvalds,title="Using {RCU} in the {Linux} 2.5 Kernel" 8331da177e4SLinus Torvalds,Year="2003" 8341da177e4SLinus Torvalds,Month="October" 8351da177e4SLinus Torvalds,journal="Linux Journal" 8361da177e4SLinus Torvalds,volume="1" 8371da177e4SLinus Torvalds,number="114" 8381da177e4SLinus Torvalds,pages="18-26" 8394c62abc9SPaul E. McKenney,note="Available: 8404c62abc9SPaul E. McKenney\url{http://www.linuxjournal.com/article/6993} 8414c62abc9SPaul E. McKenney[Viewed November 14, 2007]" 842*6ae37718SPaul E. McKenney,annotation={ 8434c62abc9SPaul E. McKenney Reader-friendly intro to RCU, with the infamous old-man-and-brat 8444c62abc9SPaul E. McKenney cartoon. 845*6ae37718SPaul E. McKenney} 8464c62abc9SPaul E. McKenney} 8474c62abc9SPaul E. McKenney 8484c62abc9SPaul E. McKenney@unpublished{Sarma03a 8494c62abc9SPaul E. McKenney,Author="Dipankar Sarma" 8504c62abc9SPaul E. McKenney,Title="RCU low latency patches" 8514c62abc9SPaul E. McKenney,month="December" 8524c62abc9SPaul E. McKenney,year="2003" 8534c62abc9SPaul E. McKenney,note="Message ID: 20031222180114.GA2248@in.ibm.com" 854*6ae37718SPaul E. McKenney,annotation={ 855*6ae37718SPaul E. McKenney dipankar/ct.2004.03.27/RCUll.2003.12.22.patch 856*6ae37718SPaul E. McKenney} 8571da177e4SLinus Torvalds} 8581da177e4SLinus Torvalds 859a83f1fe2SPaul E. McKenney@techreport{Friedberg03a 860a83f1fe2SPaul E. McKenney,author="Stuart A. Friedberg" 861a83f1fe2SPaul E. McKenney,title="Lock-Free Wild Card Search Data Structure and Method" 862a83f1fe2SPaul E. McKenney,institution="US Patent and Trademark Office" 863a83f1fe2SPaul E. McKenney,address="Washington, DC" 864a83f1fe2SPaul E. McKenney,year="2003" 8654c62abc9SPaul E. McKenney,number="US Patent 6,662,184" 866a83f1fe2SPaul E. McKenney,month="December" 867a83f1fe2SPaul E. McKenney,pages="112" 868*6ae37718SPaul E. McKenney,annotation={ 8694c62abc9SPaul E. McKenney Applies RCU to a wildcard-search Patricia tree in order to permit 8704c62abc9SPaul E. McKenney synchronization-free lookup. RCU is used to retain removed nodes 8714c62abc9SPaul E. McKenney for a grace period before freeing them. 872*6ae37718SPaul E. McKenney} 873a83f1fe2SPaul E. McKenney} 874a83f1fe2SPaul E. McKenney 8751da177e4SLinus Torvalds@article{McKenney04a 8761da177e4SLinus Torvalds,author="Paul E. McKenney and Dipankar Sarma and Maneesh Soni" 8771da177e4SLinus Torvalds,title="Scaling dcache with {RCU}" 8781da177e4SLinus Torvalds,Year="2004" 8791da177e4SLinus Torvalds,Month="January" 8801da177e4SLinus Torvalds,journal="Linux Journal" 8811da177e4SLinus Torvalds,volume="1" 8821da177e4SLinus Torvalds,number="118" 8831da177e4SLinus Torvalds,pages="38-46" 884*6ae37718SPaul E. McKenney,annotation={ 8854c62abc9SPaul E. McKenney Reader friendly intro to dcache and RCU. 886*6ae37718SPaul E. McKenney http://www.linuxjournal.com/node/7124 887*6ae37718SPaul E. McKenney [Viewed December 26, 2010] 888*6ae37718SPaul E. McKenney} 8891da177e4SLinus Torvalds} 8901da177e4SLinus Torvalds 8911da177e4SLinus Torvalds@Conference{McKenney04b 8921da177e4SLinus Torvalds,Author="Paul E. McKenney" 8931da177e4SLinus Torvalds,Title="{RCU} vs. Locking Performance on Different {CPUs}" 8941da177e4SLinus Torvalds,Booktitle="{linux.conf.au}" 8951da177e4SLinus Torvalds,Month="January" 8961da177e4SLinus Torvalds,Year="2004" 8971da177e4SLinus Torvalds,Address="Adelaide, Australia" 8981da177e4SLinus Torvalds,note="Available: 8991da177e4SLinus Torvalds\url{http://www.linux.org.au/conf/2004/abstracts.html#90} 9004c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf} 9011da177e4SLinus Torvalds[Viewed June 23, 2004]" 902*6ae37718SPaul E. McKenney,annotation={ 9034c62abc9SPaul E. McKenney Compares performance of RCU to that of other locking primitives 9044c62abc9SPaul E. McKenney over a number of CPUs (x86, Opteron, Itanium, and PPC). 905*6ae37718SPaul E. McKenney} 9064c62abc9SPaul E. McKenney} 9074c62abc9SPaul E. McKenney 9084c62abc9SPaul E. McKenney@unpublished{Sarma04a 9094c62abc9SPaul E. McKenney,Author="Dipankar Sarma" 9104c62abc9SPaul E. McKenney,Title="{[PATCH]} {RCU} for low latency (experimental)" 9114c62abc9SPaul E. McKenney,month="March" 9124c62abc9SPaul E. McKenney,year="2004" 9134c62abc9SPaul E. McKenney,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}" 914*6ae37718SPaul E. McKenney,annotation={ 915*6ae37718SPaul E. McKenney Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch 916*6ae37718SPaul E. McKenney} 9174c62abc9SPaul E. McKenney} 9184c62abc9SPaul E. McKenney 9194c62abc9SPaul E. McKenney@unpublished{Sarma04b 9204c62abc9SPaul E. McKenney,Author="Dipankar Sarma" 9214c62abc9SPaul E. McKenney,Title="Re: {[PATCH]} {RCU} for low latency (experimental)" 9224c62abc9SPaul E. McKenney,month="March" 9234c62abc9SPaul E. McKenney,year="2004" 9244c62abc9SPaul E. McKenney,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}" 925*6ae37718SPaul E. McKenney,annotation={ 926*6ae37718SPaul E. McKenney dipankar/rcuth.2004.03.24/rcu-throttle.patch 927*6ae37718SPaul E. McKenney} 9284c62abc9SPaul E. McKenney} 9294c62abc9SPaul E. McKenney 9304c62abc9SPaul E. McKenney@unpublished{Spraul04a 9314c62abc9SPaul E. McKenney,Author="Manfred Spraul" 9324c62abc9SPaul E. McKenney,Title="[RFC] 0/5 rcu lock update" 9334c62abc9SPaul E. McKenney,month="May" 9344c62abc9SPaul E. McKenney,year="2004" 9354c62abc9SPaul E. McKenney,note="Available: 9364c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2} 9374c62abc9SPaul E. McKenney[Viewed June 23, 2004]" 938*6ae37718SPaul E. McKenney,annotation={ 9394c62abc9SPaul E. McKenney Hierarchical-bitmap patch for RCU infrastructure. 940*6ae37718SPaul E. McKenney} 9414c62abc9SPaul E. McKenney} 9424c62abc9SPaul E. McKenney 9434c62abc9SPaul E. McKenney@unpublished{Steiner04a 9444c62abc9SPaul E. McKenney,Author="Jack Steiner" 9454c62abc9SPaul E. McKenney,Title="Re: [Lse-tech] [RFC, PATCH] 1/5 rcu lock update: 9464c62abc9SPaul E. McKenneyAdd per-cpu batch counter" 9474c62abc9SPaul E. McKenney,month="May" 9484c62abc9SPaul E. McKenney,year="2004" 9494c62abc9SPaul E. McKenney,note="Available: 9504c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108551764515332&w=2} 9514c62abc9SPaul E. McKenney[Viewed June 23, 2004]" 9524c62abc9SPaul E. McKenney,annotation={ 9534c62abc9SPaul E. McKenney RCU runs reasonably on a 512-CPU SGI using Manfred Spraul's patches, 9544c62abc9SPaul E. McKenney which may be found at: 9554c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/20/49 (split vars into cachelines) 9564c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/22/114 (cpu_quiet() patch) 9574c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/24 (0/5) 9584c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/23 (1/5) 9594c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/265 (works for Jack) 9604c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/20 (2/5) 9614c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/22 (3/5) 9624c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/19 (4/5) 9634c62abc9SPaul E. McKenney https://lkml.org/lkml/2004/5/25/21 (5/5) 9644c62abc9SPaul E. McKenney} 9654c62abc9SPaul E. McKenney} 9664c62abc9SPaul E. McKenney 9674c62abc9SPaul E. McKenney@Conference{Sarma04c 9684c62abc9SPaul E. McKenney,Author="Dipankar Sarma and Paul E. McKenney" 9694c62abc9SPaul E. McKenney,Title="Making {RCU} Safe for Deep Sub-Millisecond Response 9704c62abc9SPaul E. McKenneyRealtime Applications" 9714c62abc9SPaul E. McKenney,Booktitle="Proceedings of the 2004 USENIX Annual Technical Conference 9724c62abc9SPaul E. McKenney(FREENIX Track)" 9734c62abc9SPaul E. McKenney,Publisher="USENIX Association" 9744c62abc9SPaul E. McKenney,year="2004" 9754c62abc9SPaul E. McKenney,month="June" 9764c62abc9SPaul E. McKenney,pages="182-191" 977*6ae37718SPaul E. McKenney,annotation={ 9784c62abc9SPaul E. McKenney Describes and compares a number of modifications to the Linux RCU 9794c62abc9SPaul E. McKenney implementation that make it friendly to realtime applications. 980*6ae37718SPaul E. McKenney https://www.usenix.org/conference/2004-usenix-annual-technical-conference/making-rcu-safe-deep-sub-millisecond-response 981*6ae37718SPaul E. McKenney [Viewed July 26, 2012] 982*6ae37718SPaul E. McKenney} 9831da177e4SLinus Torvalds} 9841da177e4SLinus Torvalds 9851da177e4SLinus Torvalds@phdthesis{PaulEdwardMcKenneyPhD 9861da177e4SLinus Torvalds,author="Paul E. McKenney" 9871da177e4SLinus Torvalds,title="Exploiting Deferred Destruction: 9881da177e4SLinus TorvaldsAn Analysis of Read-Copy-Update Techniques 9891da177e4SLinus Torvaldsin Operating System Kernels" 9901da177e4SLinus Torvalds,school="OGI School of Science and Engineering at 9911da177e4SLinus TorvaldsOregon Health and Sciences University" 9921da177e4SLinus Torvalds,year="2004" 993*6ae37718SPaul E. McKenney,annotation={ 9944c62abc9SPaul E. McKenney Describes RCU implementations and presents design patterns 9954c62abc9SPaul E. McKenney corresponding to common uses of RCU in several operating-system 9964c62abc9SPaul E. McKenney kernels. 997*6ae37718SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf 998*6ae37718SPaul E. McKenney [Viewed October 15, 2004] 999*6ae37718SPaul E. McKenney} 10001da177e4SLinus Torvalds} 10011da177e4SLinus Torvalds 10024c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2004rcu:dereference 10034c62abc9SPaul E. McKenney,Author="Dipankar Sarma" 10044c62abc9SPaul E. McKenney,Title="{Re: RCU : Abstracted RCU dereferencing [5/5]}" 10054c62abc9SPaul E. McKenney,month="August" 10061da177e4SLinus Torvalds,year="2004" 10074c62abc9SPaul E. McKenney,note="Available: 10084c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2004/8/6/237} 10094c62abc9SPaul E. McKenney[Viewed June 8, 2010]" 1010*6ae37718SPaul E. McKenney,annotation={ 10114c62abc9SPaul E. McKenney Introduce rcu_dereference(). 1012*6ae37718SPaul E. McKenney} 10134c62abc9SPaul E. McKenney} 10144c62abc9SPaul E. McKenney 10154c62abc9SPaul E. McKenney@unpublished{JimHouston04a 10164c62abc9SPaul E. McKenney,Author="Jim Houston" 10174c62abc9SPaul E. McKenney,Title="{[RFC\&PATCH] Alternative {RCU} implementation}" 10184c62abc9SPaul E. McKenney,month="August" 10194c62abc9SPaul E. McKenney,year="2004" 10204c62abc9SPaul E. McKenney,note="Available: 10214c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2004/8/30/87} 10224c62abc9SPaul E. McKenney[Viewed February 17, 2005]" 1023*6ae37718SPaul E. McKenney,annotation={ 10244c62abc9SPaul E. McKenney Uses active code in rcu_read_lock() and rcu_read_unlock() to 10254c62abc9SPaul E. McKenney make RCU happen, allowing RCU to function on CPUs that do not 10264c62abc9SPaul E. McKenney receive a scheduling-clock interrupt. 1027*6ae37718SPaul E. McKenney} 10284c62abc9SPaul E. McKenney} 10294c62abc9SPaul E. McKenney 10304c62abc9SPaul E. McKenney@unpublished{TomHart04a 10314c62abc9SPaul E. McKenney,Author="Thomas E. Hart" 10324c62abc9SPaul E. McKenney,Title="Master's Thesis: Applying Lock-free Techniques to the {Linux} Kernel" 10334c62abc9SPaul E. McKenney,month="October" 10344c62abc9SPaul E. McKenney,year="2004" 10354c62abc9SPaul E. McKenney,note="Available: 10364c62abc9SPaul E. McKenney\url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html} 10374c62abc9SPaul E. McKenney[Viewed October 15, 2004]" 1038*6ae37718SPaul E. McKenney,annotation={ 10394c62abc9SPaul E. McKenney Proposes comparing RCU to lock-free methods for the Linux kernel. 1040*6ae37718SPaul E. McKenney} 10414c62abc9SPaul E. McKenney} 10424c62abc9SPaul E. McKenney 10434c62abc9SPaul E. McKenney@unpublished{Vaddagiri04a 10444c62abc9SPaul E. McKenney,Author="Srivatsa Vaddagiri" 10454c62abc9SPaul E. McKenney,Title="Subject: [RFC] Use RCU for tcp\_ehash lookup" 10464c62abc9SPaul E. McKenney,month="October" 10474c62abc9SPaul E. McKenney,year="2004" 10484c62abc9SPaul E. McKenney,note="Available: 10494c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2} 10504c62abc9SPaul E. McKenney[Viewed October 18, 2004]" 1051*6ae37718SPaul E. McKenney,annotation={ 10524c62abc9SPaul E. McKenney Srivatsa's RCU patch for tcp_ehash lookup. 1053*6ae37718SPaul E. McKenney} 10544c62abc9SPaul E. McKenney} 10554c62abc9SPaul E. McKenney 10564c62abc9SPaul E. McKenney@unpublished{Thirumalai04a 10574c62abc9SPaul E. McKenney,Author="Ravikiran Thirumalai" 10584c62abc9SPaul E. McKenney,Title="Subject: [patchset] Lockfree fd lookup 0 of 5" 10594c62abc9SPaul E. McKenney,month="October" 10604c62abc9SPaul E. McKenney,year="2004" 10614c62abc9SPaul E. McKenney,note="Available: 10624c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2} 10634c62abc9SPaul E. McKenney[Viewed October 18, 2004]" 1064*6ae37718SPaul E. McKenney,annotation={ 10654c62abc9SPaul E. McKenney Ravikiran's lockfree FD patch. 1066*6ae37718SPaul E. McKenney} 10674c62abc9SPaul E. McKenney} 10684c62abc9SPaul E. McKenney 10694c62abc9SPaul E. McKenney@unpublished{Thirumalai04b 10704c62abc9SPaul E. McKenney,Author="Ravikiran Thirumalai" 10714c62abc9SPaul E. McKenney,Title="Subject: Re: [patchset] Lockfree fd lookup 0 of 5" 10724c62abc9SPaul E. McKenney,month="October" 10734c62abc9SPaul E. McKenney,year="2004" 10744c62abc9SPaul E. McKenney,note="Available: 10754c62abc9SPaul E. McKenney\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2} 10764c62abc9SPaul E. McKenney[Viewed October 18, 2004]" 1077*6ae37718SPaul E. McKenney,annotation={ 10784c62abc9SPaul E. McKenney Ravikiran's lockfree FD patch. 1079*6ae37718SPaul E. McKenney} 10804c62abc9SPaul E. McKenney} 10814c62abc9SPaul E. McKenney 10824c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2004rcu:assign:pointer 10834c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 10844c62abc9SPaul E. McKenney,Title="{[PATCH 1/3] RCU: \url{rcu_assign_pointer()} removal of memory barriers}" 10854c62abc9SPaul E. McKenney,month="October" 10864c62abc9SPaul E. McKenney,year="2004" 10874c62abc9SPaul E. McKenney,note="Available: 10884c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2004/10/23/241} 10894c62abc9SPaul E. McKenney[Viewed June 8, 2010]" 1090*6ae37718SPaul E. McKenney,annotation={ 10914c62abc9SPaul E. McKenney Introduce rcu_assign_pointer(). 1092*6ae37718SPaul E. McKenney} 10934c62abc9SPaul E. McKenney} 10944c62abc9SPaul E. McKenney 10954c62abc9SPaul E. McKenney@unpublished{JamesMorris04a 10964c62abc9SPaul E. McKenney,Author="James Morris" 10974c62abc9SPaul E. McKenney,Title="{[PATCH 2/3] SELinux} scalability - convert {AVC} to {RCU}" 10984c62abc9SPaul E. McKenney,day="15" 10994c62abc9SPaul E. McKenney,month="November" 11004c62abc9SPaul E. McKenney,year="2004" 1101*6ae37718SPaul E. McKenney,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2}" 1102*6ae37718SPaul E. McKenney,annotation={ 11034c62abc9SPaul E. McKenney James Morris posts Kaigai Kohei's patch to LKML. 1104*6ae37718SPaul E. McKenney [Viewed December 10, 2004] 1105*6ae37718SPaul E. McKenney Kaigai's patch is at https://lkml.org/lkml/2004/9/27/52 1106*6ae37718SPaul E. McKenney} 11071da177e4SLinus Torvalds} 1108a83f1fe2SPaul E. McKenney 1109a83f1fe2SPaul E. McKenney@unpublished{JamesMorris04b 1110a83f1fe2SPaul E. McKenney,Author="James Morris" 1111a83f1fe2SPaul E. McKenney,Title="Recent Developments in {SELinux} Kernel Performance" 1112a83f1fe2SPaul E. McKenney,month="December" 1113a83f1fe2SPaul E. McKenney,year="2004" 1114a83f1fe2SPaul E. McKenney,note="Available: 1115a83f1fe2SPaul E. McKenney\url{http://www.livejournal.com/users/james_morris/2153.html} 1116a83f1fe2SPaul E. McKenney[Viewed December 10, 2004]" 1117*6ae37718SPaul E. McKenney,annotation={ 11184c62abc9SPaul E. McKenney RCU helps SELinux performance. ;-) Made LWN. 1119*6ae37718SPaul E. McKenney} 11204c62abc9SPaul E. McKenney} 11214c62abc9SPaul E. McKenney 11224c62abc9SPaul E. McKenney@unpublished{PaulMcKenney2005RCUSemantics 11234c62abc9SPaul E. McKenney,Author="Paul E. McKenney and Jonathan Walpole" 11244c62abc9SPaul E. McKenney,Title="{RCU} Semantics: A First Attempt" 11254c62abc9SPaul E. McKenney,month="January" 11264c62abc9SPaul E. McKenney,year="2005" 11274c62abc9SPaul E. McKenney,day="30" 11284c62abc9SPaul E. McKenney,note="Available: 11294c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf} 11304c62abc9SPaul E. McKenney[Viewed December 6, 2009]" 1131*6ae37718SPaul E. McKenney,annotation={ 11324c62abc9SPaul E. McKenney Early derivation of RCU semantics. 1133*6ae37718SPaul E. McKenney} 11344c62abc9SPaul E. McKenney} 11354c62abc9SPaul E. McKenney 11364c62abc9SPaul E. McKenney@unpublished{PaulMcKenney2005e 11374c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 11384c62abc9SPaul E. McKenney,Title="Real-Time Preemption and {RCU}" 11394c62abc9SPaul E. McKenney,month="March" 11404c62abc9SPaul E. McKenney,year="2005" 11414c62abc9SPaul E. McKenney,day="17" 11424c62abc9SPaul E. McKenney,note="Available: 11434c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2005/3/17/199} 11444c62abc9SPaul E. McKenney[Viewed September 5, 2005]" 1145*6ae37718SPaul E. McKenney,annotation={ 11464c62abc9SPaul E. McKenney First posting showing how RCU can be safely adapted for 11474c62abc9SPaul E. McKenney preemptable RCU read side critical sections. 1148*6ae37718SPaul E. McKenney} 11494c62abc9SPaul E. McKenney} 11504c62abc9SPaul E. McKenney 11514c62abc9SPaul E. McKenney@unpublished{EsbenNeilsen2005a 11524c62abc9SPaul E. McKenney,Author="Esben Neilsen" 11534c62abc9SPaul E. McKenney,Title="Re: Real-Time Preemption and {RCU}" 11544c62abc9SPaul E. McKenney,month="March" 11554c62abc9SPaul E. McKenney,year="2005" 11564c62abc9SPaul E. McKenney,day="18" 11574c62abc9SPaul E. McKenney,note="Available: 11584c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2005/3/18/122} 11594c62abc9SPaul E. McKenney[Viewed March 30, 2006]" 1160*6ae37718SPaul E. McKenney,annotation={ 11614c62abc9SPaul E. McKenney Esben Neilsen suggests read-side suppression of grace-period 11624c62abc9SPaul E. McKenney processing for crude-but-workable realtime RCU. The downside 11634c62abc9SPaul E. McKenney is indefinite grace periods... But this is OK for experimentation 11644c62abc9SPaul E. McKenney and testing. 1165*6ae37718SPaul E. McKenney} 11664c62abc9SPaul E. McKenney} 11674c62abc9SPaul E. McKenney 11684c62abc9SPaul E. McKenney@unpublished{TomHart05a 11694c62abc9SPaul E. McKenney,Author="Thomas E. Hart and Paul E. McKenney and Angela Demke Brown" 11704c62abc9SPaul E. McKenney,Title="Efficient Memory Reclamation is Necessary for Fast Lock-Free 11714c62abc9SPaul E. McKenneyData Structures" 11724c62abc9SPaul E. McKenney,month="March" 11734c62abc9SPaul E. McKenney,year="2005" 11744c62abc9SPaul E. McKenney,note="Available: 11754c62abc9SPaul E. McKenney\url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/} 11764c62abc9SPaul E. McKenney[Viewed March 4, 2005]" 1177*6ae37718SPaul E. McKenney,annotation={ 11784c62abc9SPaul E. McKenney Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly 11794c62abc9SPaul E. McKenney workloads. ;-) 1180*6ae37718SPaul E. McKenney} 11814c62abc9SPaul E. McKenney} 11824c62abc9SPaul E. McKenney 11834c62abc9SPaul E. McKenney@unpublished{JonCorbet2005DeprecateSyncKernel 11844c62abc9SPaul E. McKenney,Author="Jonathan Corbet" 11854c62abc9SPaul E. McKenney,Title="API change: synchronize_kernel() deprecated" 11864c62abc9SPaul E. McKenney,month="May" 11874c62abc9SPaul E. McKenney,day="3" 11884c62abc9SPaul E. McKenney,year="2005" 11894c62abc9SPaul E. McKenney,note="Available: 11904c62abc9SPaul E. McKenney\url{http://lwn.net/Articles/134484/} 11914c62abc9SPaul E. McKenney[Viewed May 3, 2005]" 1192*6ae37718SPaul E. McKenney,annotation={ 11934c62abc9SPaul E. McKenney Jon Corbet describes deprecation of synchronize_kernel() 11944c62abc9SPaul E. McKenney in favor of synchronize_rcu() and synchronize_sched(). 1195*6ae37718SPaul E. McKenney} 1196a83f1fe2SPaul E. McKenney} 1197dd81eca8SPaul E. McKenney 1198dd81eca8SPaul E. McKenney@unpublished{PaulMcKenney05a 1199dd81eca8SPaul E. McKenney,Author="Paul E. McKenney" 1200dd81eca8SPaul E. McKenney,Title="{[RFC]} {RCU} and {CONFIG\_PREEMPT\_RT} progress" 1201dd81eca8SPaul E. McKenney,month="May" 1202dd81eca8SPaul E. McKenney,year="2005" 1203dd81eca8SPaul E. McKenney,note="Available: 1204dd81eca8SPaul E. McKenney\url{http://lkml.org/lkml/2005/5/9/185} 1205dd81eca8SPaul E. McKenney[Viewed May 13, 2005]" 1206*6ae37718SPaul E. McKenney,annotation={ 1207dd81eca8SPaul E. McKenney First publication of working lock-based deferred free patches 1208dd81eca8SPaul E. McKenney for the CONFIG_PREEMPT_RT environment. 1209*6ae37718SPaul E. McKenney} 1210dd81eca8SPaul E. McKenney} 1211dd81eca8SPaul E. McKenney 1212dd81eca8SPaul E. McKenney@conference{PaulMcKenney05b 1213dd81eca8SPaul E. McKenney,Author="Paul E. McKenney and Dipankar Sarma" 12144c62abc9SPaul E. McKenney,Title="Towards Hard Realtime Response from the {Linux} Kernel on {SMP} Hardware" 1215dd81eca8SPaul E. McKenney,Booktitle="linux.conf.au 2005" 1216dd81eca8SPaul E. McKenney,month="April" 1217dd81eca8SPaul E. McKenney,year="2005" 1218dd81eca8SPaul E. McKenney,address="Canberra, Australia" 1219dd81eca8SPaul E. McKenney,note="Available: 1220dd81eca8SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} 1221dd81eca8SPaul E. McKenney[Viewed May 13, 2005]" 1222*6ae37718SPaul E. McKenney,annotation={ 1223dd81eca8SPaul E. McKenney Realtime turns into making RCU yet more realtime friendly. 12244c62abc9SPaul E. McKenney http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf 1225*6ae37718SPaul E. McKenney} 12264c62abc9SPaul E. McKenney} 12274c62abc9SPaul E. McKenney 12284c62abc9SPaul E. McKenney@unpublished{PaulEMcKenneyHomePage 12294c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 12304c62abc9SPaul E. McKenney,Title="{Paul} {E.} {McKenney}" 12314c62abc9SPaul E. McKenney,month="May" 12324c62abc9SPaul E. McKenney,year="2005" 12334c62abc9SPaul E. McKenney,note="Available: 12344c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/} 12354c62abc9SPaul E. McKenney[Viewed May 25, 2005]" 1236*6ae37718SPaul E. McKenney,annotation={ 12374c62abc9SPaul E. McKenney Paul McKenney's home page. 1238*6ae37718SPaul E. McKenney} 12394c62abc9SPaul E. McKenney} 12404c62abc9SPaul E. McKenney 12414c62abc9SPaul E. McKenney@unpublished{PaulEMcKenneyRCUPage 12424c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 12434c62abc9SPaul E. McKenney,Title="Read-Copy Update {(RCU)}" 12444c62abc9SPaul E. McKenney,month="May" 12454c62abc9SPaul E. McKenney,year="2005" 12464c62abc9SPaul E. McKenney,note="Available: 12474c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU} 12484c62abc9SPaul E. McKenney[Viewed May 25, 2005]" 1249*6ae37718SPaul E. McKenney,annotation={ 12504c62abc9SPaul E. McKenney Paul McKenney's RCU page. 1251*6ae37718SPaul E. McKenney} 12524c62abc9SPaul E. McKenney} 12534c62abc9SPaul E. McKenney 12544c62abc9SPaul E. McKenney@unpublished{JosephSeigh2005a 12554c62abc9SPaul E. McKenney,Author="Joseph Seigh" 12564c62abc9SPaul E. McKenney,Title="{RCU}+{SMR} (hazard pointers)" 12574c62abc9SPaul E. McKenney,month="July" 12584c62abc9SPaul E. McKenney,year="2005" 12594c62abc9SPaul E. McKenney,note="Personal communication" 1260*6ae37718SPaul E. McKenney,annotation={ 12614c62abc9SPaul E. McKenney Joe Seigh announcing his atomic-ptr-plus project. 12624c62abc9SPaul E. McKenney http://sourceforge.net/projects/atomic-ptr-plus/ 1263*6ae37718SPaul E. McKenney} 12644c62abc9SPaul E. McKenney} 12654c62abc9SPaul E. McKenney 12664c62abc9SPaul E. McKenney@unpublished{JosephSeigh2005b 12674c62abc9SPaul E. McKenney,Author="Joseph Seigh" 12684c62abc9SPaul E. McKenney,Title="Lock-free synchronization primitives" 12694c62abc9SPaul E. McKenney,month="July" 12704c62abc9SPaul E. McKenney,day="6" 12714c62abc9SPaul E. McKenney,year="2005" 12724c62abc9SPaul E. McKenney,note="Available: 12734c62abc9SPaul E. McKenney\url{http://sourceforge.net/projects/atomic-ptr-plus/} 12744c62abc9SPaul E. McKenney[Viewed August 8, 2005]" 1275*6ae37718SPaul E. McKenney,annotation={ 12764c62abc9SPaul E. McKenney Joe Seigh's atomic-ptr-plus project. 1277*6ae37718SPaul E. McKenney} 12784c62abc9SPaul E. McKenney} 12794c62abc9SPaul E. McKenney 12804c62abc9SPaul E. McKenney@unpublished{PaulMcKenney2005c 12814c62abc9SPaul E. McKenney,Author="Paul E.McKenney" 12824c62abc9SPaul E. McKenney,Title="{[RFC,PATCH] RCU} and {CONFIG\_PREEMPT\_RT} sane patch" 12834c62abc9SPaul E. McKenney,month="August" 12844c62abc9SPaul E. McKenney,day="1" 12854c62abc9SPaul E. McKenney,year="2005" 12864c62abc9SPaul E. McKenney,note="Available: 12874c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2005/8/1/155} 12884c62abc9SPaul E. McKenney[Viewed March 14, 2006]" 1289*6ae37718SPaul E. McKenney,annotation={ 12904c62abc9SPaul E. McKenney First operating counter-based realtime RCU patch posted to LKML. 1291*6ae37718SPaul E. McKenney} 12924c62abc9SPaul E. McKenney} 12934c62abc9SPaul E. McKenney 12944c62abc9SPaul E. McKenney@unpublished{PaulMcKenney2005d 12954c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 12964c62abc9SPaul E. McKenney,Title="Re: [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.52-01]" 12974c62abc9SPaul E. McKenney,month="August" 12984c62abc9SPaul E. McKenney,day="8" 12994c62abc9SPaul E. McKenney,year="2005" 13004c62abc9SPaul E. McKenney,note="Available: 13014c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2005/8/8/108} 13024c62abc9SPaul E. McKenney[Viewed March 14, 2006]" 1303*6ae37718SPaul E. McKenney,annotation={ 13044c62abc9SPaul E. McKenney First operating counter-based realtime RCU patch posted to LKML, 13054c62abc9SPaul E. McKenney but fixed so that various unusual combinations of configuration 13064c62abc9SPaul E. McKenney parameters all function properly. 1307*6ae37718SPaul E. McKenney} 13084c62abc9SPaul E. McKenney} 13094c62abc9SPaul E. McKenney 13104c62abc9SPaul E. McKenney@unpublished{PaulMcKenney2005rcutorture 13114c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 13124c62abc9SPaul E. McKenney,Title="{[PATCH]} {RCU} torture testing" 13134c62abc9SPaul E. McKenney,month="October" 13144c62abc9SPaul E. McKenney,day="1" 13154c62abc9SPaul E. McKenney,year="2005" 13164c62abc9SPaul E. McKenney,note="Available: 13174c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2005/10/1/70} 13184c62abc9SPaul E. McKenney[Viewed March 14, 2006]" 1319*6ae37718SPaul E. McKenney,annotation={ 13204c62abc9SPaul E. McKenney First rcutorture patch. 1321*6ae37718SPaul E. McKenney} 1322*6ae37718SPaul E. McKenney} 1323*6ae37718SPaul E. McKenney 1324*6ae37718SPaul E. McKenney@unpublished{DavidSMiller2006HashedLocking 1325*6ae37718SPaul E. McKenney,Author="David S. Miller" 1326*6ae37718SPaul E. McKenney,Title="Re: [{PATCH}, {RFC}] {RCU} : {OOM} avoidance and lower latency" 1327*6ae37718SPaul E. McKenney,month="January" 1328*6ae37718SPaul E. McKenney,day="6" 1329*6ae37718SPaul E. McKenney,year="2006" 1330*6ae37718SPaul E. McKenney,note="Available: 1331*6ae37718SPaul E. McKenney\url{https://lkml.org/lkml/2006/1/7/22} 1332*6ae37718SPaul E. McKenney[Viewed February 29, 2012]" 1333*6ae37718SPaul E. McKenney,annotation={ 1334*6ae37718SPaul E. McKenney David Miller's view on hashed arrays of locks: used to really 1335*6ae37718SPaul E. McKenney like it, but time he saw an opportunity for this technique, 1336*6ae37718SPaul E. McKenney something else always proved superior. Partitioning or RCU. ;-) 1337*6ae37718SPaul E. McKenney} 1338dd81eca8SPaul E. McKenney} 1339f85d6c71SPaul E. McKenney 1340f85d6c71SPaul E. McKenney@conference{ThomasEHart2006a 1341f85d6c71SPaul E. McKenney,Author="Thomas E. Hart and Paul E. McKenney and Angela Demke Brown" 1342f85d6c71SPaul E. McKenney,Title="Making Lockless Synchronization Fast: Performance Implications 1343f85d6c71SPaul E. McKenneyof Memory Reclamation" 1344f85d6c71SPaul E. McKenney,Booktitle="20\textsuperscript{th} {IEEE} International Parallel and 1345f85d6c71SPaul E. McKenneyDistributed Processing Symposium" 1346f85d6c71SPaul E. McKenney,month="April" 1347f85d6c71SPaul E. McKenney,year="2006" 1348f85d6c71SPaul E. McKenney,day="25-29" 1349f85d6c71SPaul E. McKenney,address="Rhodes, Greece" 13504c62abc9SPaul E. McKenney,note="Available: 13514c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf} 13524c62abc9SPaul E. McKenney[Viewed April 28, 2008]" 1353*6ae37718SPaul E. McKenney,annotation={ 13544c62abc9SPaul E. McKenney Compares QSBR, HPBR, EBR, and lock-free reference counting. 13554c62abc9SPaul E. McKenney http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz 1356*6ae37718SPaul E. McKenney} 13574c62abc9SPaul E. McKenney} 13584c62abc9SPaul E. McKenney 13594c62abc9SPaul E. McKenney@unpublished{NickPiggin2006radixtree 13604c62abc9SPaul E. McKenney,Author="Nick Piggin" 13614c62abc9SPaul E. McKenney,Title="[patch 3/3] radix-tree: {RCU} lockless readside" 13624c62abc9SPaul E. McKenney,month="June" 13634c62abc9SPaul E. McKenney,day="20" 13644c62abc9SPaul E. McKenney,year="2006" 13654c62abc9SPaul E. McKenney,note="Available: 13664c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2006/6/20/238} 13674c62abc9SPaul E. McKenney[Viewed March 25, 2008]" 1368*6ae37718SPaul E. McKenney,annotation={ 13694c62abc9SPaul E. McKenney RCU-protected radix tree. 1370*6ae37718SPaul E. McKenney} 1371f85d6c71SPaul E. McKenney} 1372f85d6c71SPaul E. McKenney 1373f85d6c71SPaul E. McKenney@Conference{PaulEMcKenney2006b 1374f85d6c71SPaul E. McKenney,Author="Paul E. McKenney and Dipankar Sarma and Ingo Molnar and 1375f85d6c71SPaul E. McKenneySuparna Bhattacharya" 13764c62abc9SPaul E. McKenney,Title="Extending {RCU} for Realtime and Embedded Workloads" 1377f85d6c71SPaul E. McKenney,Booktitle="{Ottawa Linux Symposium}" 1378f85d6c71SPaul E. McKenney,Month="July" 1379f85d6c71SPaul E. McKenney,Year="2006" 1380f85d6c71SPaul E. McKenney,pages="v2 123-138" 1381f85d6c71SPaul E. McKenney,note="Available: 13824c62abc9SPaul E. McKenney\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} 1383f85d6c71SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} 1384f85d6c71SPaul E. McKenney[Viewed January 1, 2007]" 1385*6ae37718SPaul E. McKenney,annotation={ 1386f85d6c71SPaul E. McKenney Described how to improve the -rt implementation of realtime RCU. 1387*6ae37718SPaul E. McKenney} 1388f85d6c71SPaul E. McKenney} 1389f85d6c71SPaul E. McKenney 13904c62abc9SPaul E. McKenney@unpublished{WikipediaRCU 13914c62abc9SPaul E. McKenney,Author="Paul E. McKenney and Chris Purcell and Algae and Ben Schumin and 13924c62abc9SPaul E. McKenneyGaius Cornelius and Qwertyus and Neil Conway and Sbw and Blainster and 13934c62abc9SPaul E. McKenneyCanis Rufus and Zoicon5 and Anome and Hal Eisen" 13944c62abc9SPaul E. McKenney,Title="Read-Copy Update" 13954c62abc9SPaul E. McKenney,month="July" 13964c62abc9SPaul E. McKenney,day="8" 13974c62abc9SPaul E. McKenney,year="2006" 1398*6ae37718SPaul E. McKenney,note="\url{http://en.wikipedia.org/wiki/Read-copy-update}" 1399*6ae37718SPaul E. McKenney,annotation={ 14004c62abc9SPaul E. McKenney Wikipedia RCU page as of July 8 2006. 1401*6ae37718SPaul E. McKenney [Viewed August 21, 2006] 1402*6ae37718SPaul E. McKenney} 14034c62abc9SPaul E. McKenney} 14044c62abc9SPaul E. McKenney 14054c62abc9SPaul E. McKenney@Conference{NickPiggin2006LocklessPageCache 14064c62abc9SPaul E. McKenney,Author="Nick Piggin" 14074c62abc9SPaul E. McKenney,Title="A Lockless Pagecache in Linux---Introduction, Progress, Performance" 14084c62abc9SPaul E. McKenney,Booktitle="{Ottawa Linux Symposium}" 14094c62abc9SPaul E. McKenney,Month="July" 14104c62abc9SPaul E. McKenney,Year="2006" 14114c62abc9SPaul E. McKenney,pages="v2 249-254" 14124c62abc9SPaul E. McKenney,note="Available: 14134c62abc9SPaul E. McKenney\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} 14144c62abc9SPaul E. McKenney[Viewed January 11, 2009]" 1415*6ae37718SPaul E. McKenney,annotation={ 14164c62abc9SPaul E. McKenney Uses RCU-protected radix tree for a lockless page cache. 1417*6ae37718SPaul E. McKenney} 14184c62abc9SPaul E. McKenney} 14194c62abc9SPaul E. McKenney 1420f85d6c71SPaul E. McKenney@unpublished{PaulEMcKenney2006c 1421f85d6c71SPaul E. McKenney,Author="Paul E. McKenney" 1422f85d6c71SPaul E. McKenney,Title="Sleepable {RCU}" 1423f85d6c71SPaul E. McKenney,month="October" 1424f85d6c71SPaul E. McKenney,day="9" 1425f85d6c71SPaul E. McKenney,year="2006" 1426f85d6c71SPaul E. McKenney,note="Available: 1427f85d6c71SPaul E. McKenney\url{http://lwn.net/Articles/202847/} 1428f85d6c71SPaul E. McKenneyRevised: 1429f85d6c71SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} 1430f85d6c71SPaul E. McKenney[Viewed August 21, 2006]" 1431*6ae37718SPaul E. McKenney,annotation={ 1432f85d6c71SPaul E. McKenney LWN article introducing SRCU. 1433*6ae37718SPaul E. McKenney} 1434f85d6c71SPaul E. McKenney} 1435f85d6c71SPaul E. McKenney 1436f85d6c71SPaul E. McKenney@unpublished{RobertOlsson2006a 1437f85d6c71SPaul E. McKenney,Author="Robert Olsson and Stefan Nilsson" 1438f85d6c71SPaul E. McKenney,Title="{TRASH}: A dynamic {LC}-trie and hash data structure" 1439f85d6c71SPaul E. McKenney,month="August" 1440f85d6c71SPaul E. McKenney,day="18" 1441f85d6c71SPaul E. McKenney,year="2006" 1442*6ae37718SPaul E. McKenney,note="\url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf}" 1443*6ae37718SPaul E. McKenney,annotation={ 1444f85d6c71SPaul E. McKenney RCU-protected dynamic trie-hash combination. 1445*6ae37718SPaul E. McKenney [Viewed March 4, 2011] 1446*6ae37718SPaul E. McKenney} 1447f85d6c71SPaul E. McKenney} 1448f85d6c71SPaul E. McKenney 14494c62abc9SPaul E. McKenney@unpublished{ChristophHellwig2006RCU2SRCU 14504c62abc9SPaul E. McKenney,Author="Christoph Hellwig" 14514c62abc9SPaul E. McKenney,Title="Re: {[-mm PATCH 1/4]} {RCU}: split classic rcu" 14524c62abc9SPaul E. McKenney,month="September" 14534c62abc9SPaul E. McKenney,day="28" 14544c62abc9SPaul E. McKenney,year="2006" 14554c62abc9SPaul E. McKenney,note="Available: 14564c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2006/9/28/160} 14574c62abc9SPaul E. McKenney[Viewed March 27, 2008]" 14584c62abc9SPaul E. McKenney} 14594c62abc9SPaul E. McKenney 14604c62abc9SPaul E. McKenney@unpublished{PaulEMcKenneyRCUusagePage 14614c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 14624c62abc9SPaul E. McKenney,Title="{RCU} {Linux} Usage" 14634c62abc9SPaul E. McKenney,month="October" 14644c62abc9SPaul E. McKenney,year="2006" 14654c62abc9SPaul E. McKenney,note="Available: 14664c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html} 14674c62abc9SPaul E. McKenney[Viewed January 14, 2007]" 1468*6ae37718SPaul E. McKenney,annotation={ 14694c62abc9SPaul E. McKenney Paul McKenney's RCU page showing graphs plotting Linux-kernel 14704c62abc9SPaul E. McKenney usage of RCU. 1471*6ae37718SPaul E. McKenney} 14724c62abc9SPaul E. McKenney} 14734c62abc9SPaul E. McKenney 14744c62abc9SPaul E. McKenney@unpublished{PaulEMcKenneyRCUusageRawDataPage 14754c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 14764c62abc9SPaul E. McKenney,Title="Read-Copy Update {(RCU)} Usage in {Linux} Kernel" 14774c62abc9SPaul E. McKenney,month="October" 14784c62abc9SPaul E. McKenney,year="2006" 14794c62abc9SPaul E. McKenney,note="Available: 14804c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html} 14814c62abc9SPaul E. McKenney[Viewed January 14, 2007]" 1482*6ae37718SPaul E. McKenney,annotation={ 14834c62abc9SPaul E. McKenney Paul McKenney's RCU page showing Linux usage of RCU in tabular 14844c62abc9SPaul E. McKenney form, with links to corresponding cscope databases. 1485*6ae37718SPaul E. McKenney} 14864c62abc9SPaul E. McKenney} 14874c62abc9SPaul E. McKenney 14884c62abc9SPaul E. McKenney@unpublished{GauthamShenoy2006RCUrwlock 14894c62abc9SPaul E. McKenney,Author="Gautham R. Shenoy" 14904c62abc9SPaul E. McKenney,Title="[PATCH 4/5] lock\_cpu\_hotplug: Redesign - Lightweight implementation of lock\_cpu\_hotplug" 14914c62abc9SPaul E. McKenney,month="October" 14924c62abc9SPaul E. McKenney,year="2006" 14934c62abc9SPaul E. McKenney,day=26 14944c62abc9SPaul E. McKenney,note="Available: 14954c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2006/10/26/73} 14964c62abc9SPaul E. McKenney[Viewed January 26, 2009]" 1497*6ae37718SPaul E. McKenney,annotation={ 14984c62abc9SPaul E. McKenney RCU-based reader-writer lock that allows readers to proceed with 14994c62abc9SPaul E. McKenney no memory barriers or atomic instruction in absence of writers. 15004c62abc9SPaul E. McKenney If writer do show up, readers must of course wait as required by 15014c62abc9SPaul E. McKenney the semantics of reader-writer locking. This is a recursive 15024c62abc9SPaul E. McKenney lock. 1503*6ae37718SPaul E. McKenney} 15044c62abc9SPaul E. McKenney} 15054c62abc9SPaul E. McKenney 15064c62abc9SPaul E. McKenney@unpublished{JensAxboe2006SlowSRCU 15074c62abc9SPaul E. McKenney,Author="Jens Axboe" 15084c62abc9SPaul E. McKenney,Title="Re: [patch] cpufreq: mark \url{cpufreq_tsc()} as 15094c62abc9SPaul E. McKenney\url{core_initcall_sync}" 15104c62abc9SPaul E. McKenney,month="November" 15114c62abc9SPaul E. McKenney,year="2006" 15124c62abc9SPaul E. McKenney,day=17 15134c62abc9SPaul E. McKenney,note="Available: 15144c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2006/11/17/56} 15154c62abc9SPaul E. McKenney[Viewed May 28, 2007]" 1516*6ae37718SPaul E. McKenney,annotation={ 15174c62abc9SPaul E. McKenney SRCU's grace periods are too slow for Jens, even after a 15184c62abc9SPaul E. McKenney factor-of-three speedup. 15194c62abc9SPaul E. McKenney Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. 1520*6ae37718SPaul E. McKenney} 15214c62abc9SPaul E. McKenney} 15224c62abc9SPaul E. McKenney 15234c62abc9SPaul E. McKenney@unpublished{OlegNesterov2006QRCU 15244c62abc9SPaul E. McKenney,Author="Oleg Nesterov" 15254c62abc9SPaul E. McKenney,Title="Re: [patch] cpufreq: mark {\tt cpufreq\_tsc()} as 15264c62abc9SPaul E. McKenney{\tt core\_initcall\_sync}" 15274c62abc9SPaul E. McKenney,month="November" 15284c62abc9SPaul E. McKenney,year="2006" 15294c62abc9SPaul E. McKenney,day=19 15304c62abc9SPaul E. McKenney,note="Available: 15314c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2006/11/19/69} 15324c62abc9SPaul E. McKenney[Viewed May 28, 2007]" 1533*6ae37718SPaul E. McKenney,annotation={ 15344c62abc9SPaul E. McKenney First cut of QRCU. Expanded/corrected versions followed. 15354c62abc9SPaul E. McKenney Used to be OlegNesterov2007QRCU, now time-corrected. 1536*6ae37718SPaul E. McKenney} 15374c62abc9SPaul E. McKenney} 15384c62abc9SPaul E. McKenney 15394c62abc9SPaul E. McKenney@unpublished{OlegNesterov2006aQRCU 15404c62abc9SPaul E. McKenney,Author="Oleg Nesterov" 15414c62abc9SPaul E. McKenney,Title="Re: [RFC, PATCH 1/2] qrcu: {"quick"} srcu implementation" 15424c62abc9SPaul E. McKenney,month="November" 15434c62abc9SPaul E. McKenney,year="2006" 15444c62abc9SPaul E. McKenney,day=30 15454c62abc9SPaul E. McKenney,note="Available: 15464c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2006/11/29/330} 15474c62abc9SPaul E. McKenney[Viewed November 26, 2008]" 1548*6ae37718SPaul E. McKenney,annotation={ 15494c62abc9SPaul E. McKenney Expanded/corrected version of QRCU. 15504c62abc9SPaul E. McKenney Used to be OlegNesterov2007aQRCU, now time-corrected. 1551*6ae37718SPaul E. McKenney} 15524c62abc9SPaul E. McKenney} 15534c62abc9SPaul E. McKenney 15544c62abc9SPaul E. McKenney@unpublished{EvgeniyPolyakov2006RCUslowdown 15554c62abc9SPaul E. McKenney,Author="Evgeniy Polyakov" 15564c62abc9SPaul E. McKenney,Title="Badness in postponing work" 15574c62abc9SPaul E. McKenney,month="December" 15584c62abc9SPaul E. McKenney,year="2006" 15594c62abc9SPaul E. McKenney,day=05 15604c62abc9SPaul E. McKenney,note="Available: 15614c62abc9SPaul E. McKenney\url{http://www.ioremap.net/node/41} 15624c62abc9SPaul E. McKenney[Viewed October 28, 2008]" 1563*6ae37718SPaul E. McKenney,annotation={ 15644c62abc9SPaul E. McKenney Using RCU as a pure delay leads to a 2.5x slowdown in skbs in 15654c62abc9SPaul E. McKenney the Linux kernel. 1566*6ae37718SPaul E. McKenney} 15674c62abc9SPaul E. McKenney} 15684c62abc9SPaul E. McKenney 15694c62abc9SPaul E. McKenney@inproceedings{ChrisMatthews2006ClusteredObjectsRCU 15704c62abc9SPaul E. McKenney,author = {Matthews, Chris and Coady, Yvonne and Appavoo, Jonathan} 15714c62abc9SPaul E. McKenney,title = {Portability events: a programming model for scalable system infrastructures} 15724c62abc9SPaul E. McKenney,booktitle = {PLOS '06: Proceedings of the 3rd workshop on Programming languages and operating systems} 15734c62abc9SPaul E. McKenney,year = {2006} 15744c62abc9SPaul E. McKenney,isbn = {1-59593-577-0} 15754c62abc9SPaul E. McKenney,pages = {11} 15764c62abc9SPaul E. McKenney,location = {San Jose, California} 15774c62abc9SPaul E. McKenney,doi = {http://doi.acm.org/10.1145/1215995.1216006} 15784c62abc9SPaul E. McKenney,publisher = {ACM} 15794c62abc9SPaul E. McKenney,address = {New York, NY, USA} 1580f85d6c71SPaul E. McKenney,annotation={ 15814c62abc9SPaul E. McKenney Uses K42's RCU-like functionality to manage clustered-object 15824c62abc9SPaul E. McKenney lifetimes. 1583*6ae37718SPaul E. McKenney} 1584*6ae37718SPaul E. McKenney} 15854c62abc9SPaul E. McKenney 15864c62abc9SPaul E. McKenney@article{DilmaDaSilva2006K42 15874c62abc9SPaul E. McKenney,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew} 15884c62abc9SPaul E. McKenney,title = {K42: an infrastructure for operating system research} 15894c62abc9SPaul E. McKenney,journal = {SIGOPS Oper. Syst. Rev.} 15904c62abc9SPaul E. McKenney,volume = {40} 15914c62abc9SPaul E. McKenney,number = {2} 15924c62abc9SPaul E. McKenney,year = {2006} 15934c62abc9SPaul E. McKenney,issn = {0163-5980} 15944c62abc9SPaul E. McKenney,pages = {34--42} 15954c62abc9SPaul E. McKenney,doi = {http://doi.acm.org/10.1145/1131322.1131333} 15964c62abc9SPaul E. McKenney,publisher = {ACM} 15974c62abc9SPaul E. McKenney,address = {New York, NY, USA} 15984c62abc9SPaul E. McKenney,annotation={ 15994c62abc9SPaul E. McKenney Describes relationship of K42 generations to RCU. 1600*6ae37718SPaul E. McKenney} 1601*6ae37718SPaul E. McKenney} 16024c62abc9SPaul E. McKenney 16034c62abc9SPaul E. McKenney# CoreyMinyard2007list_splice_rcu 16044c62abc9SPaul E. McKenney@unpublished{CoreyMinyard2007list:splice:rcu 16054c62abc9SPaul E. McKenney,Author="Corey Minyard and Paul E. McKenney" 16064c62abc9SPaul E. McKenney,Title="{[PATCH]} add an {RCU} version of list splicing" 16074c62abc9SPaul E. McKenney,month="January" 16084c62abc9SPaul E. McKenney,year="2007" 16094c62abc9SPaul E. McKenney,day=3 16104c62abc9SPaul E. McKenney,note="Available: 16114c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2007/1/3/112} 16124c62abc9SPaul E. McKenney[Viewed May 28, 2007]" 1613*6ae37718SPaul E. McKenney,annotation={ 16144c62abc9SPaul E. McKenney Patch for list_splice_rcu(). 1615*6ae37718SPaul E. McKenney} 16164c62abc9SPaul E. McKenney} 16174c62abc9SPaul E. McKenney 16184c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2007rcubarrier 16194c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 16204c62abc9SPaul E. McKenney,Title="{RCU} and Unloadable Modules" 16214c62abc9SPaul E. McKenney,month="January" 16224c62abc9SPaul E. McKenney,day="14" 16234c62abc9SPaul E. McKenney,year="2007" 16244c62abc9SPaul E. McKenney,note="Available: 16254c62abc9SPaul E. McKenney\url{http://lwn.net/Articles/217484/} 16264c62abc9SPaul E. McKenney[Viewed November 22, 2007]" 1627*6ae37718SPaul E. McKenney,annotation={ 16284c62abc9SPaul E. McKenney LWN article introducing the rcu_barrier() primitive. 1629*6ae37718SPaul E. McKenney} 16304c62abc9SPaul E. McKenney} 16314c62abc9SPaul E. McKenney 16324c62abc9SPaul E. McKenney@unpublished{PeterZijlstra2007SyncBarrier 16334c62abc9SPaul E. McKenney,Author="Peter Zijlstra and Ingo Molnar" 16344c62abc9SPaul E. McKenney,Title="{[PATCH 3/7]} barrier: a scalable synchonisation barrier" 16354c62abc9SPaul E. McKenney,month="January" 16364c62abc9SPaul E. McKenney,year="2007" 16374c62abc9SPaul E. McKenney,day=28 16384c62abc9SPaul E. McKenney,note="Available: 16394c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2007/1/28/34} 16404c62abc9SPaul E. McKenney[Viewed March 27, 2008]" 1641*6ae37718SPaul E. McKenney,annotation={ 16424c62abc9SPaul E. McKenney RCU-like implementation for frequent updaters and rare readers(!). 16434c62abc9SPaul E. McKenney Subsumed into QRCU. Maybe... 1644*6ae37718SPaul E. McKenney} 16454c62abc9SPaul E. McKenney} 16464c62abc9SPaul E. McKenney 16474c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2007BoostRCU 16484c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 16494c62abc9SPaul E. McKenney,Title="Priority-Boosting {RCU} Read-Side Critical Sections" 16504c62abc9SPaul E. McKenney,month="February" 16514c62abc9SPaul E. McKenney,day="5" 16524c62abc9SPaul E. McKenney,year="2007" 1653*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/220677/}" 1654*6ae37718SPaul E. McKenney,annotation={ 16554c62abc9SPaul E. McKenney LWN article introducing RCU priority boosting. 1656*6ae37718SPaul E. McKenney Revised: 1657*6ae37718SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf 1658*6ae37718SPaul E. McKenney [Viewed September 7, 2007] 1659*6ae37718SPaul E. McKenney} 16604c62abc9SPaul E. McKenney} 16614c62abc9SPaul E. McKenney 16624c62abc9SPaul E. McKenney@unpublished{PaulMcKenney2007QRCUpatch 16634c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 16644c62abc9SPaul E. McKenney,Title="{[PATCH]} {QRCU} with lockless fastpath" 16654c62abc9SPaul E. McKenney,month="February" 16664c62abc9SPaul E. McKenney,year="2007" 16674c62abc9SPaul E. McKenney,day=24 16684c62abc9SPaul E. McKenney,note="Available: 16694c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2007/2/25/18} 16704c62abc9SPaul E. McKenney[Viewed March 27, 2008]" 1671*6ae37718SPaul E. McKenney,annotation={ 16724c62abc9SPaul E. McKenney Patch for QRCU supplying lock-free fast path. 1673*6ae37718SPaul E. McKenney} 16744c62abc9SPaul E. McKenney} 16754c62abc9SPaul E. McKenney 16764c62abc9SPaul E. McKenney@article{JonathanAppavoo2007K42RCU 16774c62abc9SPaul E. McKenney,author = {Appavoo, Jonathan and Silva, Dilma Da and Krieger, Orran and Auslander, Marc and Ostrowski, Michal and Rosenburg, Bryan and Waterland, Amos and Wisniewski, Robert W. and Xenidis, Jimi and Stumm, Michael and Soares, Livio} 16784c62abc9SPaul E. McKenney,title = {Experience distributing objects in an SMMP OS} 16794c62abc9SPaul E. McKenney,journal = {ACM Trans. Comput. Syst.} 16804c62abc9SPaul E. McKenney,volume = {25} 16814c62abc9SPaul E. McKenney,number = {3} 16824c62abc9SPaul E. McKenney,year = {2007} 16834c62abc9SPaul E. McKenney,issn = {0734-2071} 16844c62abc9SPaul E. McKenney,pages = {6/1--6/52} 16854c62abc9SPaul E. McKenney,doi = {http://doi.acm.org/10.1145/1275517.1275518} 16864c62abc9SPaul E. McKenney,publisher = {ACM} 16874c62abc9SPaul E. McKenney,address = {New York, NY, USA} 16884c62abc9SPaul E. McKenney,annotation={ 16894c62abc9SPaul E. McKenney Role of RCU in K42. 1690*6ae37718SPaul E. McKenney} 1691*6ae37718SPaul E. McKenney} 16924c62abc9SPaul E. McKenney 16934c62abc9SPaul E. McKenney@conference{RobertOlsson2007Trash 16944c62abc9SPaul E. McKenney,Author="Robert Olsson and Stefan Nilsson" 16954c62abc9SPaul E. McKenney,Title="{TRASH}: A dynamic {LC}-trie and hash data structure" 16964c62abc9SPaul E. McKenney,booktitle="Workshop on High Performance Switching and Routing (HPSR'07)" 16974c62abc9SPaul E. McKenney,month="May" 16984c62abc9SPaul E. McKenney,year="2007" 16994c62abc9SPaul E. McKenney,note="Available: 17004c62abc9SPaul E. McKenney\url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239} 17014c62abc9SPaul E. McKenney[Viewed October 1, 2010]" 1702*6ae37718SPaul E. McKenney,annotation={ 17034c62abc9SPaul E. McKenney RCU-protected dynamic trie-hash combination. 1704*6ae37718SPaul E. McKenney} 17054c62abc9SPaul E. McKenney} 17064c62abc9SPaul E. McKenney 17074c62abc9SPaul E. McKenney@conference{PeterZijlstra2007ConcurrentPagecacheRCU 17084c62abc9SPaul E. McKenney,Author="Peter Zijlstra" 17094c62abc9SPaul E. McKenney,Title="Concurrent Pagecache" 17104c62abc9SPaul E. McKenney,Booktitle="Linux Symposium" 17114c62abc9SPaul E. McKenney,month="June" 17124c62abc9SPaul E. McKenney,year="2007" 17134c62abc9SPaul E. McKenney,address="Ottawa, Canada" 17144c62abc9SPaul E. McKenney,note="Available: 17154c62abc9SPaul E. McKenney\url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf} 17164c62abc9SPaul E. McKenney[Viewed April 14, 2008]" 1717*6ae37718SPaul E. McKenney,annotation={ 17184c62abc9SPaul E. McKenney Page-cache modifications permitting RCU readers and concurrent 17194c62abc9SPaul E. McKenney updates. 1720*6ae37718SPaul E. McKenney} 17214c62abc9SPaul E. McKenney} 17224c62abc9SPaul E. McKenney 17234c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2007whatisRCU 17244c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 17254c62abc9SPaul E. McKenney,Title="What is {RCU}?" 17264c62abc9SPaul E. McKenney,year="2007" 17274c62abc9SPaul E. McKenney,month="07" 17284c62abc9SPaul E. McKenney,note="Available: 17294c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/whatisRCU.html} 17304c62abc9SPaul E. McKenney[Viewed July 6, 2007]" 17314c62abc9SPaul E. McKenney,annotation={ 17324c62abc9SPaul E. McKenney Describes RCU in Linux kernel. 1733f85d6c71SPaul E. McKenney} 1734f85d6c71SPaul E. McKenney} 1735f85d6c71SPaul E. McKenney 1736f85d6c71SPaul E. McKenney@unpublished{PaulEMcKenney2007QRCUspin 1737f85d6c71SPaul E. McKenney,Author="Paul E. McKenney" 17384c62abc9SPaul E. McKenney,Title="Using {Promela} and {Spin} to verify parallel algorithms" 1739f85d6c71SPaul E. McKenney,month="August" 1740f85d6c71SPaul E. McKenney,day="1" 1741f85d6c71SPaul E. McKenney,year="2007" 1742f85d6c71SPaul E. McKenney,note="Available: 1743f85d6c71SPaul E. McKenney\url{http://lwn.net/Articles/243851/} 1744f85d6c71SPaul E. McKenney[Viewed September 8, 2007]" 1745*6ae37718SPaul E. McKenney,annotation={ 1746f85d6c71SPaul E. McKenney LWN article describing Promela and spin, and also using Oleg 1747f85d6c71SPaul E. McKenney Nesterov's QRCU as an example (with Paul McKenney's fastpath). 17484c62abc9SPaul E. McKenney Merged patch at: http://lkml.org/lkml/2007/2/25/18 1749*6ae37718SPaul E. McKenney} 17504c62abc9SPaul E. McKenney} 17514c62abc9SPaul E. McKenney 17524c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2007WG21DDOatomics 17534c62abc9SPaul E. McKenney,Author="Paul E. McKenney and Hans-J. Boehm and Lawrence Crowl" 17544c62abc9SPaul E. McKenney,Title="C++ Data-Dependency Ordering: Atomics and Memory Model" 17554c62abc9SPaul E. McKenney,month="August" 17564c62abc9SPaul E. McKenney,day="3" 17574c62abc9SPaul E. McKenney,year="2007" 1758*6ae37718SPaul E. McKenney,note="Available: 17594c62abc9SPaul E. McKenney\url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm} 17604c62abc9SPaul E. McKenney[Viewed December 7, 2009]" 1761*6ae37718SPaul E. McKenney,annotation={ 17624c62abc9SPaul E. McKenney RCU for C++, parts 1 and 2. 1763*6ae37718SPaul E. McKenney} 17644c62abc9SPaul E. McKenney} 17654c62abc9SPaul E. McKenney 17664c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2007WG21DDOannotation 17674c62abc9SPaul E. McKenney,Author="Paul E. McKenney and Lawrence Crowl" 17684c62abc9SPaul E. McKenney,Title="C++ Data-Dependency Ordering: Function Annotation" 17694c62abc9SPaul E. McKenney,month="September" 17704c62abc9SPaul E. McKenney,day="18" 17714c62abc9SPaul E. McKenney,year="2008" 1772*6ae37718SPaul E. McKenney,note="Available: 17734c62abc9SPaul E. McKenney\url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm} 17744c62abc9SPaul E. McKenney[Viewed December 7, 2009]" 1775*6ae37718SPaul E. McKenney,annotation={ 17764c62abc9SPaul E. McKenney RCU for C++, part 2, updated many times. 1777*6ae37718SPaul E. McKenney} 17784c62abc9SPaul E. McKenney} 17794c62abc9SPaul E. McKenney 17804c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2007PreemptibleRCUPatch 17814c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 17824c62abc9SPaul E. McKenney,Title="[PATCH RFC 0/9] {RCU}: Preemptible {RCU}" 17834c62abc9SPaul E. McKenney,month="September" 17844c62abc9SPaul E. McKenney,day="10" 17854c62abc9SPaul E. McKenney,year="2007" 17864c62abc9SPaul E. McKenney,note="Available: 17874c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2007/9/10/213} 17884c62abc9SPaul E. McKenney[Viewed October 25, 2007]" 1789*6ae37718SPaul E. McKenney,annotation={ 17904c62abc9SPaul E. McKenney Final patch for preemptable RCU to -rt. (Later patches were 17914c62abc9SPaul E. McKenney to mainline, eventually incorporated.) 1792*6ae37718SPaul E. McKenney} 1793f85d6c71SPaul E. McKenney} 1794f85d6c71SPaul E. McKenney 179532300751SPaul E. McKenney@unpublished{PaulEMcKenney2007PreemptibleRCU 179632300751SPaul E. McKenney,Author="Paul E. McKenney" 179732300751SPaul E. McKenney,Title="The design of preemptible read-copy-update" 179832300751SPaul E. McKenney,month="October" 179932300751SPaul E. McKenney,day="8" 180032300751SPaul E. McKenney,year="2007" 180132300751SPaul E. McKenney,note="Available: 180232300751SPaul E. McKenney\url{http://lwn.net/Articles/253651/} 180332300751SPaul E. McKenney[Viewed October 25, 2007]" 1804*6ae37718SPaul E. McKenney,annotation={ 180532300751SPaul E. McKenney LWN article describing the design of preemptible RCU. 1806*6ae37718SPaul E. McKenney} 180732300751SPaul E. McKenney} 180832300751SPaul E. McKenney 18094c62abc9SPaul E. McKenney@article{ThomasEHart2007a 18104c62abc9SPaul E. McKenney,Author="Thomas E. Hart and Paul E. McKenney and Angela Demke Brown and Jonathan Walpole" 18114c62abc9SPaul E. McKenney,Title="Performance of memory reclamation for lockless synchronization" 18124c62abc9SPaul E. McKenney,journal="J. Parallel Distrib. Comput." 18134c62abc9SPaul E. McKenney,volume={67} 18144c62abc9SPaul E. McKenney,number="12" 18154c62abc9SPaul E. McKenney,year="2007" 18164c62abc9SPaul E. McKenney,issn="0743-7315" 18174c62abc9SPaul E. McKenney,pages="1270--1285" 18184c62abc9SPaul E. McKenney,doi="http://dx.doi.org/10.1016/j.jpdc.2007.04.010" 18194c62abc9SPaul E. McKenney,publisher="Academic Press, Inc." 18204c62abc9SPaul E. McKenney,address="Orlando, FL, USA" 18214c62abc9SPaul E. McKenney,annotation={ 18224c62abc9SPaul E. McKenney Compares QSBR, HPBR, EBR, and lock-free reference counting. 18234c62abc9SPaul E. McKenney Journal version of ThomasEHart2006a. 18244c62abc9SPaul E. McKenney} 18254c62abc9SPaul E. McKenney} 18264c62abc9SPaul E. McKenney 1827*6ae37718SPaul E. McKenney# MathieuDesnoyers2007call_rcu_schedNeeded 18284c62abc9SPaul E. McKenney@unpublished{MathieuDesnoyers2007call:rcu:schedNeeded 18294c62abc9SPaul E. McKenney,Author="Mathieu Desnoyers" 18304c62abc9SPaul E. McKenney,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes" 18314c62abc9SPaul E. McKenney,month="December" 18324c62abc9SPaul E. McKenney,day="20" 18334c62abc9SPaul E. McKenney,year="2007" 18344c62abc9SPaul E. McKenney,note="Available: 18354c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2007/12/20/244} 18364c62abc9SPaul E. McKenney[Viewed March 27, 2008]" 1837*6ae37718SPaul E. McKenney,annotation={ 18384c62abc9SPaul E. McKenney Request for call_rcu_sched() and rcu_barrier_sched(). 1839*6ae37718SPaul E. McKenney} 18404c62abc9SPaul E. McKenney} 18414c62abc9SPaul E. McKenney 18424c62abc9SPaul E. McKenney 184332300751SPaul E. McKenney######################################################################## 184432300751SPaul E. McKenney# 184532300751SPaul E. McKenney# "What is RCU?" LWN series. 184632300751SPaul E. McKenney# 18474c62abc9SPaul E. McKenney# http://lwn.net/Articles/262464/ (What is RCU, Fundamentally?) 18484c62abc9SPaul E. McKenney# http://lwn.net/Articles/263130/ (What is RCU's Usage?) 18494c62abc9SPaul E. McKenney# http://lwn.net/Articles/264090/ (What is RCU's API?) 185032300751SPaul E. McKenney 185132300751SPaul E. McKenney@unpublished{PaulEMcKenney2007WhatIsRCUFundamentally 185232300751SPaul E. McKenney,Author="Paul E. McKenney and Jonathan Walpole" 185332300751SPaul E. McKenney,Title="What is {RCU}, Fundamentally?" 185432300751SPaul E. McKenney,month="December" 185532300751SPaul E. McKenney,day="17" 185632300751SPaul E. McKenney,year="2007" 185732300751SPaul E. McKenney,note="Available: 185832300751SPaul E. McKenney\url{http://lwn.net/Articles/262464/} 185932300751SPaul E. McKenney[Viewed December 27, 2007]" 1860*6ae37718SPaul E. McKenney,annotation={ 186132300751SPaul E. McKenney Lays out the three basic components of RCU: (1) publish-subscribe, 186232300751SPaul E. McKenney (2) wait for pre-existing readers to complete, and (2) maintain 186332300751SPaul E. McKenney multiple versions. 1864*6ae37718SPaul E. McKenney} 186532300751SPaul E. McKenney} 186632300751SPaul E. McKenney 186732300751SPaul E. McKenney@unpublished{PaulEMcKenney2008WhatIsRCUUsage 186832300751SPaul E. McKenney,Author="Paul E. McKenney" 186932300751SPaul E. McKenney,Title="What is {RCU}? Part 2: Usage" 187032300751SPaul E. McKenney,month="January" 187132300751SPaul E. McKenney,day="4" 187232300751SPaul E. McKenney,year="2008" 187332300751SPaul E. McKenney,note="Available: 187432300751SPaul E. McKenney\url{http://lwn.net/Articles/263130/} 187532300751SPaul E. McKenney[Viewed January 4, 2008]" 1876*6ae37718SPaul E. McKenney,annotation={ 187732300751SPaul E. McKenney Lays out six uses of RCU: 187832300751SPaul E. McKenney 1. RCU is a Reader-Writer Lock Replacement 187932300751SPaul E. McKenney 2. RCU is a Restricted Reference-Counting Mechanism 188032300751SPaul E. McKenney 3. RCU is a Bulk Reference-Counting Mechanism 188132300751SPaul E. McKenney 4. RCU is a Poor Man's Garbage Collector 188232300751SPaul E. McKenney 5. RCU is a Way of Providing Existence Guarantees 188332300751SPaul E. McKenney 6. RCU is a Way of Waiting for Things to Finish 1884*6ae37718SPaul E. McKenney} 188532300751SPaul E. McKenney} 188632300751SPaul E. McKenney 188732300751SPaul E. McKenney@unpublished{PaulEMcKenney2008WhatIsRCUAPI 188832300751SPaul E. McKenney,Author="Paul E. McKenney" 188932300751SPaul E. McKenney,Title="{RCU} part 3: the {RCU} {API}" 189032300751SPaul E. McKenney,month="January" 189132300751SPaul E. McKenney,day="17" 189232300751SPaul E. McKenney,year="2008" 189332300751SPaul E. McKenney,note="Available: 189432300751SPaul E. McKenney\url{http://lwn.net/Articles/264090/} 189532300751SPaul E. McKenney[Viewed January 10, 2008]" 1896*6ae37718SPaul E. McKenney,annotation={ 189732300751SPaul E. McKenney Gives an overview of the Linux-kernel RCU API and a brief annotated RCU 189832300751SPaul E. McKenney bibliography. 1899*6ae37718SPaul E. McKenney} 190032300751SPaul E. McKenney} 190132300751SPaul E. McKenney 19024c54005cSPaul E. McKenney# 19034c54005cSPaul E. McKenney# "What is RCU?" LWN series. 19044c54005cSPaul E. McKenney# 19054c54005cSPaul E. McKenney######################################################################## 19064c54005cSPaul E. McKenney 19074c62abc9SPaul E. McKenney 19084c62abc9SPaul E. McKenney@unpublished{SteveRostedt2008dyntickRCUpatch 19094c62abc9SPaul E. McKenney,Author="Steven Rostedt and Paul E. McKenney" 19104c62abc9SPaul E. McKenney,Title="{[PATCH]} add support for dynamic ticks and preempt rcu" 19114c62abc9SPaul E. McKenney,month="January" 19124c62abc9SPaul E. McKenney,day="29" 19134c62abc9SPaul E. McKenney,year="2008" 19144c62abc9SPaul E. McKenney,note="Available: 19154c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2008/1/29/208} 19164c62abc9SPaul E. McKenney[Viewed March 27, 2008]" 1917*6ae37718SPaul E. McKenney,annotation={ 19184c62abc9SPaul E. McKenney Patch that prevents preemptible RCU from unnecessarily waking 19194c62abc9SPaul E. McKenney up dynticks-idle CPUs. 1920*6ae37718SPaul E. McKenney} 19214c62abc9SPaul E. McKenney} 19224c62abc9SPaul E. McKenney 19234c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2008LKMLDependencyOrdering 19244c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 19254c62abc9SPaul E. McKenney,Title="Re: [PATCH 02/22 -v7] Add basic support for gcc profiler instrumentation" 19264c62abc9SPaul E. McKenney,month="February" 19274c62abc9SPaul E. McKenney,day="1" 19284c62abc9SPaul E. McKenney,year="2008" 19294c62abc9SPaul E. McKenney,note="Available: 19304c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2008/2/2/255} 19314c62abc9SPaul E. McKenney[Viewed October 18, 2008]" 1932*6ae37718SPaul E. McKenney,annotation={ 19334c62abc9SPaul E. McKenney Explanation of compilers violating dependency ordering. 1934*6ae37718SPaul E. McKenney} 19354c62abc9SPaul E. McKenney} 19364c62abc9SPaul E. McKenney 19374c62abc9SPaul E. McKenney@Conference{PaulEMcKenney2008Beijing 19384c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 19394c62abc9SPaul E. McKenney,Title="Introducing Technology Into {Linux} Or: 19404c62abc9SPaul E. McKenneyIntroducing your technology Into {Linux} will require introducing a 19414c62abc9SPaul E. McKenneylot of {Linux} into your technology!!!" 19424c62abc9SPaul E. McKenney,Booktitle="2008 Linux Developer Symposium - China" 19434c62abc9SPaul E. McKenney,Publisher="OSS China" 19444c62abc9SPaul E. McKenney,Month="February" 19454c62abc9SPaul E. McKenney,Year="2008" 19464c62abc9SPaul E. McKenney,Address="Beijing, China" 19474c62abc9SPaul E. McKenney,note="Available: 19484c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/TechIntroLinux.2008.02.19a.pdf} 19494c62abc9SPaul E. McKenney[Viewed August 12, 2008]" 19504c62abc9SPaul E. McKenney} 19514c62abc9SPaul E. McKenney 19524c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2008dynticksRCU 19534c62abc9SPaul E. McKenney,Author="Paul E. McKenney and Steven Rostedt" 19544c62abc9SPaul E. McKenney,Title="Integrating and Validating dynticks and Preemptable RCU" 19554c62abc9SPaul E. McKenney,month="April" 19564c62abc9SPaul E. McKenney,day="24" 19574c62abc9SPaul E. McKenney,year="2008" 19584c62abc9SPaul E. McKenney,note="Available: 19594c62abc9SPaul E. McKenney\url{http://lwn.net/Articles/279077/} 19604c62abc9SPaul E. McKenney[Viewed April 24, 2008]" 1961*6ae37718SPaul E. McKenney,annotation={ 19624c62abc9SPaul E. McKenney Describes use of Promela and Spin to validate (and fix!) the 19634c62abc9SPaul E. McKenney dynticks/RCU interface. 1964*6ae37718SPaul E. McKenney} 19654c62abc9SPaul E. McKenney} 19664c62abc9SPaul E. McKenney 196732300751SPaul E. McKenney@article{DinakarGuniguntala2008IBMSysJ 196832300751SPaul E. McKenney,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" 196932300751SPaul E. McKenney,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" 197032300751SPaul E. McKenney,Year="2008" 1971*6ae37718SPaul E. McKenney,Month="May" 197232300751SPaul E. McKenney,journal="IBM Systems Journal" 197332300751SPaul E. McKenney,volume="47" 197432300751SPaul E. McKenney,number="2" 19754c62abc9SPaul E. McKenney,pages="221-236" 1976*6ae37718SPaul E. McKenney,annotation={ 197732300751SPaul E. McKenney RCU, realtime RCU, sleepable RCU, performance. 1978*6ae37718SPaul E. McKenney http://www.research.ibm.com/journal/sj/472/guniguntala.pdf 1979*6ae37718SPaul E. McKenney [Viewed April 24, 2008] 1980*6ae37718SPaul E. McKenney} 198132300751SPaul E. McKenney} 1982240ebbf8SPaul E. McKenney 19834c62abc9SPaul E. McKenney@unpublished{LaiJiangshan2008NewClassicAlgorithm 19844c62abc9SPaul E. McKenney,Author="Lai Jiangshan" 19854c62abc9SPaul E. McKenney,Title="[{RFC}][{PATCH}] rcu classic: new algorithm for callbacks-processing" 19864c62abc9SPaul E. McKenney,month="June" 19874c62abc9SPaul E. McKenney,day="3" 19884c62abc9SPaul E. McKenney,year="2008" 19894c62abc9SPaul E. McKenney,note="Available: 19904c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2008/6/2/539} 19914c62abc9SPaul E. McKenney[Viewed December 10, 2008]" 1992*6ae37718SPaul E. McKenney,annotation={ 19934c62abc9SPaul E. McKenney Updated RCU classic algorithm. Introduced multi-tailed list 19944c62abc9SPaul E. McKenney for RCU callbacks and also pulling common code into 19954c62abc9SPaul E. McKenney __call_rcu(). 1996*6ae37718SPaul E. McKenney} 19974c62abc9SPaul E. McKenney} 19984c62abc9SPaul E. McKenney 1999240ebbf8SPaul E. McKenney@article{PaulEMcKenney2008RCUOSR 2000240ebbf8SPaul E. McKenney,author="Paul E. McKenney and Jonathan Walpole" 2001240ebbf8SPaul E. McKenney,title="Introducing technology into the {Linux} kernel: a case study" 2002240ebbf8SPaul E. McKenney,Year="2008" 2003240ebbf8SPaul E. McKenney,journal="SIGOPS Oper. Syst. Rev." 2004240ebbf8SPaul E. McKenney,volume="42" 2005240ebbf8SPaul E. McKenney,number="5" 2006240ebbf8SPaul E. McKenney,pages="4--17" 2007240ebbf8SPaul E. McKenney,issn="0163-5980" 2008240ebbf8SPaul E. McKenney,doi={http://doi.acm.org/10.1145/1400097.1400099} 2009240ebbf8SPaul E. McKenney,publisher="ACM" 2010240ebbf8SPaul E. McKenney,address="New York, NY, USA" 2011240ebbf8SPaul E. McKenney,annotation={ 2012240ebbf8SPaul E. McKenney Linux changed RCU to a far greater degree than RCU has changed Linux. 2013*6ae37718SPaul E. McKenney http://portal.acm.org/citation.cfm?doid=1400097.1400099 2014240ebbf8SPaul E. McKenney} 2015240ebbf8SPaul E. McKenney} 2016240ebbf8SPaul E. McKenney 20174c62abc9SPaul E. McKenney@unpublished{ManfredSpraul2008StateMachineRCU 20184c62abc9SPaul E. McKenney,Author="Manfred Spraul" 20194c62abc9SPaul E. McKenney,Title="[{RFC}, {PATCH}] state machine based rcu" 20204c62abc9SPaul E. McKenney,month="August" 20214c62abc9SPaul E. McKenney,day="21" 20224c62abc9SPaul E. McKenney,year="2008" 20234c62abc9SPaul E. McKenney,note="Available: 20244c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2008/8/21/336} 20254c62abc9SPaul E. McKenney[Viewed December 8, 2008]" 2026*6ae37718SPaul E. McKenney,annotation={ 20274c62abc9SPaul E. McKenney State-based RCU. One key thing that this patch does is to 20284c62abc9SPaul E. McKenney separate the dynticks handling of NMIs and IRQs. 2029*6ae37718SPaul E. McKenney} 20304c62abc9SPaul E. McKenney} 20314c62abc9SPaul E. McKenney 20324c62abc9SPaul E. McKenney@unpublished{ManfredSpraul2008dyntickIRQNMI 20334c62abc9SPaul E. McKenney,Author="Manfred Spraul" 20344c62abc9SPaul E. McKenney,Title="Re: [{RFC}, {PATCH}] v4 scalable classic {RCU} implementation" 20354c62abc9SPaul E. McKenney,month="September" 20364c62abc9SPaul E. McKenney,day="6" 20374c62abc9SPaul E. McKenney,year="2008" 20384c62abc9SPaul E. McKenney,note="Available: 20394c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2008/9/6/86} 20404c62abc9SPaul E. McKenney[Viewed December 8, 2008]" 2041*6ae37718SPaul E. McKenney,annotation={ 20424c62abc9SPaul E. McKenney Manfred notes a fix required to my attempt to separate irq 20434c62abc9SPaul E. McKenney and NMI processing for hierarchical RCU's dynticks interface. 2044*6ae37718SPaul E. McKenney} 20454c62abc9SPaul E. McKenney} 20464c62abc9SPaul E. McKenney 2047*6ae37718SPaul E. McKenney# Was PaulEMcKenney2011cyclicRCU 20484c62abc9SPaul E. McKenney@techreport{PaulEMcKenney2008cyclicRCU 20494c62abc9SPaul E. McKenney,author="Paul E. McKenney" 20504c62abc9SPaul E. McKenney,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update" 20514c62abc9SPaul E. McKenney,institution="US Patent and Trademark Office" 20524c62abc9SPaul E. McKenney,address="Washington, DC" 20534c62abc9SPaul E. McKenney,year="2008" 20544c62abc9SPaul E. McKenney,number="US Patent 7,426,511" 20554c62abc9SPaul E. McKenney,month="September" 20564c62abc9SPaul E. McKenney,pages="23" 2057*6ae37718SPaul E. McKenney,annotation={ 20584c62abc9SPaul E. McKenney Maintains an additional level of indirection to allow 20594c62abc9SPaul E. McKenney readers to confine themselves to the desired snapshot of the 20604c62abc9SPaul E. McKenney data structure. Only permits one update at a time. 2061*6ae37718SPaul E. McKenney} 20624c62abc9SPaul E. McKenney} 20634c62abc9SPaul E. McKenney 2064240ebbf8SPaul E. McKenney@unpublished{PaulEMcKenney2008HierarchicalRCU 2065240ebbf8SPaul E. McKenney,Author="Paul E. McKenney" 2066240ebbf8SPaul E. McKenney,Title="Hierarchical {RCU}" 2067240ebbf8SPaul E. McKenney,month="November" 2068240ebbf8SPaul E. McKenney,day="3" 2069240ebbf8SPaul E. McKenney,year="2008" 2070*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/305782/}" 2071*6ae37718SPaul E. McKenney,annotation={ 2072240ebbf8SPaul E. McKenney RCU with combining-tree-based grace-period detection, 2073240ebbf8SPaul E. McKenney permitting it to handle thousands of CPUs. 2074*6ae37718SPaul E. McKenney [Viewed November 6, 2008] 2075*6ae37718SPaul E. McKenney} 2076240ebbf8SPaul E. McKenney} 2077240ebbf8SPaul E. McKenney 20784c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2009BloatwatchRCU 20794c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 20804c62abc9SPaul E. McKenney,Title="Re: [PATCH fyi] RCU: the bloatwatch edition" 20814c62abc9SPaul E. McKenney,month="January" 20824c62abc9SPaul E. McKenney,day="14" 20834c62abc9SPaul E. McKenney,year="2009" 20844c62abc9SPaul E. McKenney,note="Available: 20854c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2009/1/14/449} 20864c62abc9SPaul E. McKenney[Viewed January 15, 2009]" 2087*6ae37718SPaul E. McKenney,annotation={ 20884c62abc9SPaul E. McKenney Small-footprint implementation of RCU for uniprocessor 20894c62abc9SPaul E. McKenney embedded applications -- and also for exposition purposes. 2090*6ae37718SPaul E. McKenney} 20914c62abc9SPaul E. McKenney} 20924c62abc9SPaul E. McKenney 2093240ebbf8SPaul E. McKenney@conference{PaulEMcKenney2009MaliciousURCU 2094240ebbf8SPaul E. McKenney,Author="Paul E. McKenney" 2095240ebbf8SPaul E. McKenney,Title="Using a Malicious User-Level {RCU} to Torture {RCU}-Based Algorithms" 2096240ebbf8SPaul E. McKenney,Booktitle="linux.conf.au 2009" 2097240ebbf8SPaul E. McKenney,month="January" 2098240ebbf8SPaul E. McKenney,year="2009" 2099240ebbf8SPaul E. McKenney,address="Hobart, Australia" 2100240ebbf8SPaul E. McKenney,note="Available: 2101240ebbf8SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf} 2102240ebbf8SPaul E. McKenney[Viewed February 2, 2009]" 2103*6ae37718SPaul E. McKenney,annotation={ 2104240ebbf8SPaul E. McKenney Realtime RCU and torture-testing RCU uses. 2105*6ae37718SPaul E. McKenney} 2106240ebbf8SPaul E. McKenney} 2107240ebbf8SPaul E. McKenney 2108240ebbf8SPaul E. McKenney@unpublished{MathieuDesnoyers2009URCU 2109240ebbf8SPaul E. McKenney,Author="Mathieu Desnoyers" 2110240ebbf8SPaul E. McKenney,Title="[{RFC} git tree] Userspace {RCU} (urcu) for {Linux}" 2111240ebbf8SPaul E. McKenney,month="February" 2112240ebbf8SPaul E. McKenney,day="5" 2113240ebbf8SPaul E. McKenney,year="2009" 2114*6ae37718SPaul E. McKenney,note="\url{http://lttng.org/urcu}" 2115*6ae37718SPaul E. McKenney,annotation={ 2116240ebbf8SPaul E. McKenney Mathieu Desnoyers's user-space RCU implementation. 2117240ebbf8SPaul E. McKenney git://lttng.org/userspace-rcu.git 21184c62abc9SPaul E. McKenney http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git 21194c62abc9SPaul E. McKenney http://lttng.org/urcu 2120*6ae37718SPaul E. McKenney http://lkml.org/lkml/2009/2/5/572 2121*6ae37718SPaul E. McKenney} 2122240ebbf8SPaul E. McKenney} 2123240ebbf8SPaul E. McKenney 21244c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2009LWNBloatWatchRCU 2125240ebbf8SPaul E. McKenney,Author="Paul E. McKenney" 2126240ebbf8SPaul E. McKenney,Title="{RCU}: The {Bloatwatch} Edition" 2127240ebbf8SPaul E. McKenney,month="March" 2128240ebbf8SPaul E. McKenney,day="17" 2129240ebbf8SPaul E. McKenney,year="2009" 2130240ebbf8SPaul E. McKenney,note="Available: 2131240ebbf8SPaul E. McKenney\url{http://lwn.net/Articles/323929/} 2132240ebbf8SPaul E. McKenney[Viewed March 20, 2009]" 2133*6ae37718SPaul E. McKenney,annotation={ 2134240ebbf8SPaul E. McKenney Uniprocessor assumptions allow simplified RCU implementation. 2135*6ae37718SPaul E. McKenney} 2136*6ae37718SPaul E. McKenney} 2137*6ae37718SPaul E. McKenney 2138*6ae37718SPaul E. McKenney@unpublished{EvgeniyPolyakov2009EllipticsNetwork 2139*6ae37718SPaul E. McKenney,Author="Evgeniy Polyakov" 2140*6ae37718SPaul E. McKenney,Title="The Elliptics Network" 2141*6ae37718SPaul E. McKenney,month="April" 2142*6ae37718SPaul E. McKenney,day="17" 2143*6ae37718SPaul E. McKenney,year="2009" 2144*6ae37718SPaul E. McKenney,note="Available: 2145*6ae37718SPaul E. McKenney\url{http://www.ioremap.net/projects/elliptics} 2146*6ae37718SPaul E. McKenney[Viewed April 30, 2009]" 2147*6ae37718SPaul E. McKenney,annotation={ 2148*6ae37718SPaul E. McKenney Distributed hash table with transactions, using elliptic 2149*6ae37718SPaul E. McKenney hash functions to distribute data. 2150*6ae37718SPaul E. McKenney} 2151240ebbf8SPaul E. McKenney} 21524c54005cSPaul E. McKenney 21534c54005cSPaul E. McKenney@unpublished{PaulEMcKenney2009expeditedRCU 21544c54005cSPaul E. McKenney,Author="Paul E. McKenney" 21554c54005cSPaul E. McKenney,Title="[{PATCH} -tip 0/3] expedited 'big hammer' {RCU} grace periods" 21564c54005cSPaul E. McKenney,month="June" 21574c54005cSPaul E. McKenney,day="25" 21584c54005cSPaul E. McKenney,year="2009" 21594c54005cSPaul E. McKenney,note="Available: 21604c54005cSPaul E. McKenney\url{http://lkml.org/lkml/2009/6/25/306} 21614c54005cSPaul E. McKenney[Viewed August 16, 2009]" 2162*6ae37718SPaul E. McKenney,annotation={ 21634c54005cSPaul E. McKenney First posting of expedited RCU to be accepted into -tip. 2164*6ae37718SPaul E. McKenney} 21654c54005cSPaul E. McKenney} 21664c54005cSPaul E. McKenney 21674c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2009fastRTRCU 21684c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 21694c62abc9SPaul E. McKenney,Title="[{PATCH} {RFC} -tip 0/4] {RCU} cleanups and simplified preemptable {RCU}" 21704c62abc9SPaul E. McKenney,month="July" 21714c62abc9SPaul E. McKenney,day="23" 21724c62abc9SPaul E. McKenney,year="2009" 21734c62abc9SPaul E. McKenney,note="Available: 21744c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2009/7/23/294} 21754c62abc9SPaul E. McKenney[Viewed August 15, 2009]" 2176*6ae37718SPaul E. McKenney,annotation={ 21774c62abc9SPaul E. McKenney First posting of simple and fast preemptable RCU. 2178*6ae37718SPaul E. McKenney} 21794c62abc9SPaul E. McKenney} 21804c62abc9SPaul E. McKenney 2181*6ae37718SPaul E. McKenney@unpublished{JoshTriplett2009RPHash 21824c54005cSPaul E. McKenney,Author="Josh Triplett" 21834c54005cSPaul E. McKenney,Title="Scalable concurrent hash tables via relativistic programming" 21844c54005cSPaul E. McKenney,month="September" 21854c54005cSPaul E. McKenney,year="2009" 2186*6ae37718SPaul E. McKenney,note="Linux Plumbers Conference presentation" 2187*6ae37718SPaul E. McKenney,annotation={ 21884c54005cSPaul E. McKenney RP fun with hash tables. 2189*6ae37718SPaul E. McKenney Superseded by JoshTriplett2010RPHash 2190*6ae37718SPaul E. McKenney} 21914c54005cSPaul E. McKenney} 21924c54005cSPaul E. McKenney 21934c54005cSPaul E. McKenney@phdthesis{MathieuDesnoyersPhD 2194998f2ac3SPaul E. McKenney, title = "Low-Impact Operating System Tracing" 21954c54005cSPaul E. McKenney, author = "Mathieu Desnoyers" 21964c54005cSPaul E. McKenney, school = "Ecole Polytechnique de Montr\'{e}al" 21974c54005cSPaul E. McKenney, month = "December" 21984c54005cSPaul E. McKenney, year = 2009 2199998f2ac3SPaul E. McKenney,note="Available: 22001bd22e37SPaul E. McKenney\url{http://www.lttng.org/pub/thesis/desnoyers-dissertation-2009-12.pdf} 2201998f2ac3SPaul E. McKenney[Viewed December 9, 2009]" 22024c62abc9SPaul E. McKenney,annotation={ 22034c62abc9SPaul E. McKenney Chapter 6 (page 97) covers user-level RCU. 22044c62abc9SPaul E. McKenney} 22054c62abc9SPaul E. McKenney} 22064c62abc9SPaul E. McKenney 22074c62abc9SPaul E. McKenney@unpublished{RelativisticProgrammingWiki 22084c62abc9SPaul E. McKenney,Author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" 22094c62abc9SPaul E. McKenney,Title="Relativistic Programming" 22104c62abc9SPaul E. McKenney,month="September" 22114c62abc9SPaul E. McKenney,year="2009" 22124c62abc9SPaul E. McKenney,note="Available: 22134c62abc9SPaul E. McKenney\url{http://wiki.cs.pdx.edu/rp/} 22144c62abc9SPaul E. McKenney[Viewed December 9, 2009]" 2215*6ae37718SPaul E. McKenney,annotation={ 22164c62abc9SPaul E. McKenney Main Relativistic Programming Wiki. 2217*6ae37718SPaul E. McKenney} 22184c62abc9SPaul E. McKenney} 22194c62abc9SPaul E. McKenney 22204c62abc9SPaul E. McKenney@conference{PaulEMcKenney2009DeterministicRCU 22214c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 22224c62abc9SPaul E. McKenney,Title="Deterministic Synchronization in Multicore Systems: the Role of {RCU}" 22234c62abc9SPaul E. McKenney,Booktitle="Eleventh Real Time Linux Workshop" 22244c62abc9SPaul E. McKenney,month="September" 22254c62abc9SPaul E. McKenney,year="2009" 22264c62abc9SPaul E. McKenney,address="Dresden, Germany" 22274c62abc9SPaul E. McKenney,note="Available: 22284c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/realtime/paper/DetSyncRCU.2009.08.18a.pdf} 22294c62abc9SPaul E. McKenney[Viewed January 14, 2009]" 22304c62abc9SPaul E. McKenney} 22314c62abc9SPaul E. McKenney 22324c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2009HuntingHeisenbugs 22334c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 22344c62abc9SPaul E. McKenney,Title="Hunting Heisenbugs" 22354c62abc9SPaul E. McKenney,month="November" 22364c62abc9SPaul E. McKenney,year="2009" 22374c62abc9SPaul E. McKenney,day="1" 22384c62abc9SPaul E. McKenney,note="Available: 22394c62abc9SPaul E. McKenney\url{http://paulmck.livejournal.com/14639.html} 22404c62abc9SPaul E. McKenney[Viewed June 4, 2010]" 2241*6ae37718SPaul E. McKenney,annotation={ 22424c62abc9SPaul E. McKenney Day-one bug in Tree RCU that took forever to track down. 2243*6ae37718SPaul E. McKenney} 22444c62abc9SPaul E. McKenney} 22454c62abc9SPaul E. McKenney 22464c62abc9SPaul E. McKenney@unpublished{MathieuDesnoyers2009defer:rcu 22474c62abc9SPaul E. McKenney,Author="Mathieu Desnoyers" 22484c62abc9SPaul E. McKenney,Title="Kernel RCU: shrink the size of the struct rcu\_head" 22494c62abc9SPaul E. McKenney,month="December" 22504c62abc9SPaul E. McKenney,year="2009" 22514c62abc9SPaul E. McKenney,note="Available: 22524c62abc9SPaul E. McKenney\url{http://lkml.org/lkml/2009/10/18/129} 22534c62abc9SPaul E. McKenney[Viewed December 29, 2009]" 2254*6ae37718SPaul E. McKenney,annotation={ 22554c62abc9SPaul E. McKenney Mathieu proposed defer_rcu() with fixed-size per-thread pool 22564c62abc9SPaul E. McKenney of RCU callbacks. 2257*6ae37718SPaul E. McKenney} 22584c62abc9SPaul E. McKenney} 22594c62abc9SPaul E. McKenney 22604c62abc9SPaul E. McKenney@unpublished{MathieuDesnoyers2009VerifPrePub 22614c62abc9SPaul E. McKenney,Author="Mathieu Desnoyers and Paul E. McKenney and Michel R. Dagenais" 22624c62abc9SPaul E. McKenney,Title="Multi-Core Systems Modeling for Formal Verification of Parallel Algorithms" 22634c62abc9SPaul E. McKenney,month="December" 22644c62abc9SPaul E. McKenney,year="2009" 22654c62abc9SPaul E. McKenney,note="Submitted to IEEE TPDS" 2266*6ae37718SPaul E. McKenney,annotation={ 22674c62abc9SPaul E. McKenney OOMem model for Mathieu's user-level RCU mechanical proof of 22684c62abc9SPaul E. McKenney correctness. 2269*6ae37718SPaul E. McKenney} 22704c62abc9SPaul E. McKenney} 22714c62abc9SPaul E. McKenney 22724c62abc9SPaul E. McKenney@unpublished{MathieuDesnoyers2009URCUPrePub 22734c62abc9SPaul E. McKenney,Author="Mathieu Desnoyers and Paul E. McKenney and Alan Stern and Michel R. Dagenais and Jonathan Walpole" 22744c62abc9SPaul E. McKenney,Title="User-Level Implementations of Read-Copy Update" 22754c62abc9SPaul E. McKenney,month="December" 22764c62abc9SPaul E. McKenney,year="2010" 2277*6ae37718SPaul E. McKenney,url={\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html}} 2278*6ae37718SPaul E. McKenney,annotation={ 22794c62abc9SPaul E. McKenney RCU overview, desiderata, semi-formal semantics, user-level RCU 22804c62abc9SPaul E. McKenney usage scenarios, three classes of RCU implementation, wait-free 22814c62abc9SPaul E. McKenney RCU updates, RCU grace-period batching, update overhead, 22824c62abc9SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf 22834c62abc9SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf 22844c62abc9SPaul E. McKenney Superseded by MathieuDesnoyers2012URCU. 2285*6ae37718SPaul E. McKenney} 22864c62abc9SPaul E. McKenney} 22874c62abc9SPaul E. McKenney 22884c62abc9SPaul E. McKenney@inproceedings{HariKannan2009DynamicAnalysisRCU 22894c62abc9SPaul E. McKenney,author = {Kannan, Hari} 22904c62abc9SPaul E. McKenney,title = {Ordering decoupled metadata accesses in multiprocessors} 22914c62abc9SPaul E. McKenney,booktitle = {MICRO 42: Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture} 22924c62abc9SPaul E. McKenney,year = {2009} 22934c62abc9SPaul E. McKenney,isbn = {978-1-60558-798-1} 22944c62abc9SPaul E. McKenney,pages = {381--390} 22954c62abc9SPaul E. McKenney,location = {New York, New York} 22964c62abc9SPaul E. McKenney,doi = {http://doi.acm.org/10.1145/1669112.1669161} 22974c62abc9SPaul E. McKenney,publisher = {ACM} 22984c62abc9SPaul E. McKenney,address = {New York, NY, USA} 22994c62abc9SPaul E. McKenney,annotation={ 23004c62abc9SPaul E. McKenney Uses RCU to protect metadata used in dynamic analysis. 2301*6ae37718SPaul E. McKenney} 2302*6ae37718SPaul E. McKenney} 23034c62abc9SPaul E. McKenney 23044c62abc9SPaul E. McKenney@conference{PaulEMcKenney2010SimpleOptRCU 23054c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 23064c62abc9SPaul E. McKenney,Title="Simplicity Through Optimization" 23074c62abc9SPaul E. McKenney,Booktitle="linux.conf.au 2010" 23084c62abc9SPaul E. McKenney,month="January" 23094c62abc9SPaul E. McKenney,year="2010" 23104c62abc9SPaul E. McKenney,address="Wellington, New Zealand" 23114c62abc9SPaul E. McKenney,note="Available: 23124c62abc9SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf} 23134c62abc9SPaul E. McKenney[Viewed October 10, 2010]" 2314*6ae37718SPaul E. McKenney,annotation={ 23154c62abc9SPaul E. McKenney TREE_PREEMPT_RCU optimizations greatly simplified the old 23164c62abc9SPaul E. McKenney PREEMPT_RCU implementation. 2317*6ae37718SPaul E. McKenney} 23184c62abc9SPaul E. McKenney} 23194c62abc9SPaul E. McKenney 23204c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2010LockdepRCU 23214c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 23224c62abc9SPaul E. McKenney,Title="Lockdep-{RCU}" 23234c62abc9SPaul E. McKenney,month="February" 23244c62abc9SPaul E. McKenney,year="2010" 23254c62abc9SPaul E. McKenney,day="1" 2326*6ae37718SPaul E. McKenney,note="\url{https://lwn.net/Articles/371986/}" 2327*6ae37718SPaul E. McKenney,annotation={ 23284c62abc9SPaul E. McKenney CONFIG_PROVE_RCU, or at least an early version. 2329*6ae37718SPaul E. McKenney [Viewed June 4, 2010] 2330*6ae37718SPaul E. McKenney} 23314c62abc9SPaul E. McKenney} 23324c62abc9SPaul E. McKenney 23334c62abc9SPaul E. McKenney@unpublished{AviKivity2010KVM2RCU 23344c62abc9SPaul E. McKenney,Author="Avi Kivity" 23354c62abc9SPaul E. McKenney,Title="[{PATCH} 37/40] {KVM}: Bump maximum vcpu count to 64" 23364c62abc9SPaul E. McKenney,month="February" 23374c62abc9SPaul E. McKenney,year="2010" 23384c62abc9SPaul E. McKenney,note="Available: 23394c62abc9SPaul E. McKenney\url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html} 23404c62abc9SPaul E. McKenney[Viewed March 20, 2010]" 2341*6ae37718SPaul E. McKenney,annotation={ 23424c62abc9SPaul E. McKenney Use of RCU permits KVM to increase the size of guest OSes from 23434c62abc9SPaul E. McKenney 16 CPUs to 64 CPUs. 2344*6ae37718SPaul E. McKenney} 23454c62abc9SPaul E. McKenney} 23464c62abc9SPaul E. McKenney 23474c62abc9SPaul E. McKenney@unpublished{HerbertXu2010RCUResizeHash 23484c62abc9SPaul E. McKenney,Author="Herbert Xu" 23494c62abc9SPaul E. McKenney,Title="bridge: Add core IGMP snooping support" 23504c62abc9SPaul E. McKenney,month="February" 23514c62abc9SPaul E. McKenney,year="2010" 23524c62abc9SPaul E. McKenney,note="Available: 23534c62abc9SPaul E. McKenney\url{http://kerneltrap.com/mailarchive/linux-netdev/2010/2/26/6270589} 23544c62abc9SPaul E. McKenney[Viewed March 20, 2011]" 23554c62abc9SPaul E. McKenney,annotation={ 23564c62abc9SPaul E. McKenney Use a pair of list_head structures to support RCU-protected 23574c62abc9SPaul E. McKenney resizable hash tables. 2358*6ae37718SPaul E. McKenney} 2359*6ae37718SPaul E. McKenney} 2360*6ae37718SPaul E. McKenney 2361*6ae37718SPaul E. McKenney@mastersthesis{AbhinavDuggal2010Masters 2362*6ae37718SPaul E. McKenney,author="Abhinav Duggal" 2363*6ae37718SPaul E. McKenney,title="Stopping Data Races Using Redflag" 2364*6ae37718SPaul E. McKenney,school="Stony Brook University" 2365*6ae37718SPaul E. McKenney,year="2010" 2366*6ae37718SPaul E. McKenney,annotation={ 2367*6ae37718SPaul E. McKenney Data-race detector incorporating RCU. 2368*6ae37718SPaul E. McKenney http://www.filesystems.org/docs/abhinav-thesis/abhinav_thesis.pdf 2369*6ae37718SPaul E. McKenney} 2370*6ae37718SPaul E. McKenney} 23714c62abc9SPaul E. McKenney 23724c62abc9SPaul E. McKenney@article{JoshTriplett2010RPHash 23734c62abc9SPaul E. McKenney,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" 23744c62abc9SPaul E. McKenney,title="Scalable Concurrent Hash Tables via Relativistic Programming" 23754c62abc9SPaul E. McKenney,journal="ACM Operating Systems Review" 23764c62abc9SPaul E. McKenney,year=2010 23774c62abc9SPaul E. McKenney,volume=44 23784c62abc9SPaul E. McKenney,number=3 23794c62abc9SPaul E. McKenney,month="July" 23804c62abc9SPaul E. McKenney,annotation={ 23814c62abc9SPaul E. McKenney RP fun with hash tables. 23824c62abc9SPaul E. McKenney http://portal.acm.org/citation.cfm?id=1842733.1842750 2383*6ae37718SPaul E. McKenney} 2384*6ae37718SPaul E. McKenney} 23854c62abc9SPaul E. McKenney 23864c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2010RCUAPI 23874c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 23884c62abc9SPaul E. McKenney,Title="The {RCU} {API}, 2010 Edition" 23894c62abc9SPaul E. McKenney,month="December" 23904c62abc9SPaul E. McKenney,day="8" 23914c62abc9SPaul E. McKenney,year="2010" 2392*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/418853/}" 2393*6ae37718SPaul E. McKenney,annotation={ 23944c62abc9SPaul E. McKenney Includes updated software-engineering features. 2395*6ae37718SPaul E. McKenney [Viewed December 8, 2010] 2396*6ae37718SPaul E. McKenney} 23974c62abc9SPaul E. McKenney} 23984c62abc9SPaul E. McKenney 23994c62abc9SPaul E. McKenney@mastersthesis{AndrejPodzimek2010masters 24004c62abc9SPaul E. McKenney,author="Andrej Podzimek" 24014c62abc9SPaul E. McKenney,title="Read-Copy-Update for OpenSolaris" 24024c62abc9SPaul E. McKenney,school="Charles University in Prague" 24034c62abc9SPaul E. McKenney,year="2010" 24044c62abc9SPaul E. McKenney,note="Available: 24054c62abc9SPaul E. McKenney\url{https://andrej.podzimek.org/thesis.pdf} 24064c62abc9SPaul E. McKenney[Viewed January 31, 2011]" 24074c62abc9SPaul E. McKenney,annotation={ 24084c62abc9SPaul E. McKenney Reviews RCU implementations and creates a few for OpenSolaris. 24094c62abc9SPaul E. McKenney Drives quiescent-state detection from RCU read-side primitives, 24104c62abc9SPaul E. McKenney in a manner roughly similar to that of Jim Houston. 2411*6ae37718SPaul E. McKenney} 2412*6ae37718SPaul E. McKenney} 24134c62abc9SPaul E. McKenney 24144c62abc9SPaul E. McKenney@unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS 24154c62abc9SPaul E. McKenney,Author="Linus Torvalds" 24164c62abc9SPaul E. McKenney,Title="Linux 2.6.38-rc1" 24174c62abc9SPaul E. McKenney,month="January" 24184c62abc9SPaul E. McKenney,year="2011" 24194c62abc9SPaul E. McKenney,note="Available: 24204c62abc9SPaul E. McKenney\url{https://lkml.org/lkml/2011/1/18/322} 24214c62abc9SPaul E. McKenney[Viewed March 4, 2011]" 24224c62abc9SPaul E. McKenney,annotation={ 24234c62abc9SPaul E. McKenney "The RCU-based name lookup is at the other end of the spectrum - the 24244c62abc9SPaul E. McKenney absolute anti-gimmick. It's some seriously good stuff, and gets rid of 24254c62abc9SPaul E. McKenney the last main global lock that really tends to hurt some kernel loads. 24264c62abc9SPaul E. McKenney The dentry lock is no longer a big serializing issue. What's really 24274c62abc9SPaul E. McKenney nice about it is that it actually improves performance a lot even for 24284c62abc9SPaul E. McKenney single-threaded loads (on an SMP kernel), because it gets rid of some 24294c62abc9SPaul E. McKenney of the most expensive parts of path component lookup, which was the 24304c62abc9SPaul E. McKenney d_lock on every component lookup. So I'm seeing improvements of 30-50% 24314c62abc9SPaul E. McKenney on some seriously pathname-lookup intensive loads." 2432*6ae37718SPaul E. McKenney} 2433*6ae37718SPaul E. McKenney} 24344c62abc9SPaul E. McKenney 24354c62abc9SPaul E. McKenney@techreport{JoshTriplett2011RPScalableCorrectOrdering 24364c62abc9SPaul E. McKenney,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole} 24374c62abc9SPaul E. McKenney,title = {Scalable Correct Memory Ordering via Relativistic Programming} 24384c62abc9SPaul E. McKenney,year = {2011} 24394c62abc9SPaul E. McKenney,number = {11-03} 24404c62abc9SPaul E. McKenney,institution = {Portland State University} 24414c62abc9SPaul E. McKenney,note = {\url{http://www.cs.pdx.edu/pdfs/tr1103.pdf}} 24424c62abc9SPaul E. McKenney} 24434c62abc9SPaul E. McKenney 24444c62abc9SPaul E. McKenney@inproceedings{PhilHoward2011RCUTMRBTree 24454c62abc9SPaul E. McKenney,author = {Philip W. Howard and Jonathan Walpole} 24464c62abc9SPaul E. McKenney,title = {A Relativistic Enhancement to Software Transactional Memory} 24474c62abc9SPaul E. McKenney,booktitle = {Proceedings of the 3rd USENIX conference on Hot topics in parallelism} 24484c62abc9SPaul E. McKenney,series = {HotPar'11} 24494c62abc9SPaul E. McKenney,year = {2011} 24504c62abc9SPaul E. McKenney,location = {Berkeley, CA} 24514c62abc9SPaul E. McKenney,pages = {1--6} 24524c62abc9SPaul E. McKenney,numpages = {6} 24534c62abc9SPaul E. McKenney,url = {http://www.usenix.org/event/hotpar11/tech/final_files/Howard.pdf} 24544c62abc9SPaul E. McKenney,publisher = {USENIX Association} 24554c62abc9SPaul E. McKenney,address = {Berkeley, CA, USA} 24564c62abc9SPaul E. McKenney} 24574c62abc9SPaul E. McKenney 24584c62abc9SPaul E. McKenney@techreport{PaulEMcKenney2011cyclicparallelRCU 24594c62abc9SPaul E. McKenney,author="Paul E. McKenney and Jonathan Walpole" 24604c62abc9SPaul E. McKenney,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update and Parallel Updates" 24614c62abc9SPaul E. McKenney,institution="US Patent and Trademark Office" 24624c62abc9SPaul E. McKenney,address="Washington, DC" 24634c62abc9SPaul E. McKenney,year="2011" 24644c62abc9SPaul E. McKenney,number="US Patent 7,953,778" 24654c62abc9SPaul E. McKenney,month="May" 24664c62abc9SPaul E. McKenney,pages="34" 2467*6ae37718SPaul E. McKenney,annotation={ 24684c62abc9SPaul E. McKenney Maintains an array of generation numbers to track in-flight 24694c62abc9SPaul E. McKenney updates and keeps an additional level of indirection to allow 24704c62abc9SPaul E. McKenney readers to confine themselves to the desired snapshot of the 24714c62abc9SPaul E. McKenney data structure. 2472*6ae37718SPaul E. McKenney} 24734c62abc9SPaul E. McKenney} 24744c62abc9SPaul E. McKenney 24754c62abc9SPaul E. McKenney@inproceedings{Triplett:2011:RPHash 24764c62abc9SPaul E. McKenney,author = {Triplett, Josh and McKenney, Paul E. and Walpole, Jonathan} 24774c62abc9SPaul E. McKenney,title = {Resizable, Scalable, Concurrent Hash Tables via Relativistic Programming} 24784c62abc9SPaul E. McKenney,booktitle = {Proceedings of the 2011 USENIX Annual Technical Conference} 24794c62abc9SPaul E. McKenney,month = {June} 24804c62abc9SPaul E. McKenney,year = {2011} 24814c62abc9SPaul E. McKenney,pages = {145--158} 24824c62abc9SPaul E. McKenney,numpages = {14} 2483*6ae37718SPaul E. McKenney,url={http://www.usenix.org/event/atc11/tech/final_files/Triplett.pdf} 24844c62abc9SPaul E. McKenney,publisher = {The USENIX Association} 24854c62abc9SPaul E. McKenney,address = {Portland, OR USA} 24864c62abc9SPaul E. McKenney} 24874c62abc9SPaul E. McKenney 24884c62abc9SPaul E. McKenney@unpublished{PaulEMcKenney2011RCU3.0trainwreck 24894c62abc9SPaul E. McKenney,Author="Paul E. McKenney" 24904c62abc9SPaul E. McKenney,Title="3.0 and {RCU:} what went wrong" 24914c62abc9SPaul E. McKenney,month="July" 24924c62abc9SPaul E. McKenney,day="27" 24934c62abc9SPaul E. McKenney,year="2011" 2494*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/453002/}" 2495*6ae37718SPaul E. McKenney,annotation={ 24964c62abc9SPaul E. McKenney Analysis of the RCU trainwreck in Linux kernel 3.0. 2497*6ae37718SPaul E. McKenney [Viewed July 27, 2011] 2498*6ae37718SPaul E. McKenney} 24994c62abc9SPaul E. McKenney} 25004c62abc9SPaul E. McKenney 25014c62abc9SPaul E. McKenney@unpublished{NeilBrown2011MeetTheLockers 25024c62abc9SPaul E. McKenney,Author="Neil Brown" 2503*6ae37718SPaul E. McKenney,Title="Meet the {Lockers}" 25044c62abc9SPaul E. McKenney,month="August" 25054c62abc9SPaul E. McKenney,day="3" 25064c62abc9SPaul E. McKenney,year="2011" 25074c62abc9SPaul E. McKenney,note="Available: 25084c62abc9SPaul E. McKenney\url{http://lwn.net/Articles/453685/} 25094c62abc9SPaul E. McKenney[Viewed September 2, 2011]" 2510*6ae37718SPaul E. McKenney,annotation={ 25114c62abc9SPaul E. McKenney The Locker family as an analogy for locking, reference counting, 25124c62abc9SPaul E. McKenney RCU, and seqlock. 2513*6ae37718SPaul E. McKenney} 2514*6ae37718SPaul E. McKenney} 2515*6ae37718SPaul E. McKenney 2516*6ae37718SPaul E. McKenney@inproceedings{Seyster:2011:RFA:2075416.2075425 2517*6ae37718SPaul E. McKenney,author = {Seyster, Justin and Radhakrishnan, Prabakar and Katoch, Samriti and Duggal, Abhinav and Stoller, Scott D. and Zadok, Erez} 2518*6ae37718SPaul E. McKenney,title = {Redflag: a framework for analysis of Kernel-level concurrency} 2519*6ae37718SPaul E. McKenney,booktitle = {Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I} 2520*6ae37718SPaul E. McKenney,series = {ICA3PP'11} 2521*6ae37718SPaul E. McKenney,year = {2011} 2522*6ae37718SPaul E. McKenney,isbn = {978-3-642-24649-4} 2523*6ae37718SPaul E. McKenney,location = {Melbourne, Australia} 2524*6ae37718SPaul E. McKenney,pages = {66--79} 2525*6ae37718SPaul E. McKenney,numpages = {14} 2526*6ae37718SPaul E. McKenney,url = {http://dl.acm.org/citation.cfm?id=2075416.2075425} 2527*6ae37718SPaul E. McKenney,acmid = {2075425} 2528*6ae37718SPaul E. McKenney,publisher = {Springer-Verlag} 2529*6ae37718SPaul E. McKenney,address = {Berlin, Heidelberg} 2530*6ae37718SPaul E. McKenney} 2531*6ae37718SPaul E. McKenney 2532*6ae37718SPaul E. McKenney@phdthesis{JoshTriplettPhD 2533*6ae37718SPaul E. McKenney,author="Josh Triplett" 2534*6ae37718SPaul E. McKenney,title="Relativistic Causal Ordering: A Memory Model for Scalable Concurrent Data Structures" 2535*6ae37718SPaul E. McKenney,school="Portland State University" 2536*6ae37718SPaul E. McKenney,year="2012" 2537*6ae37718SPaul E. McKenney,annotation={ 2538*6ae37718SPaul E. McKenney RCU-protected hash tables, barriers vs. read-side traversal order. 2539*6ae37718SPaul E. McKenney . 2540*6ae37718SPaul E. McKenney If the updater is making changes in the opposite direction from 2541*6ae37718SPaul E. McKenney the read-side traveral order, the updater need only execute a 2542*6ae37718SPaul E. McKenney memory-barrier instruction, but if in the same direction, the 2543*6ae37718SPaul E. McKenney updater needs to wait for a grace period between the individual 2544*6ae37718SPaul E. McKenney updates. 2545*6ae37718SPaul E. McKenney} 25464c62abc9SPaul E. McKenney} 25474c62abc9SPaul E. McKenney 25484c62abc9SPaul E. McKenney@article{MathieuDesnoyers2012URCU 25494c62abc9SPaul E. McKenney,Author="Mathieu Desnoyers and Paul E. McKenney and Alan Stern and Michel R. Dagenais and Jonathan Walpole" 25504c62abc9SPaul E. McKenney,Title="User-Level Implementations of Read-Copy Update" 25514c62abc9SPaul E. McKenney,journal="IEEE Transactions on Parallel and Distributed Systems" 25524c62abc9SPaul E. McKenney,volume={23} 25534c62abc9SPaul E. McKenney,year="2012" 25544c62abc9SPaul E. McKenney,issn="1045-9219" 25554c62abc9SPaul E. McKenney,pages="375-382" 25564c62abc9SPaul E. McKenney,doi="http://doi.ieeecomputersociety.org/10.1109/TPDS.2011.159" 25574c62abc9SPaul E. McKenney,publisher="IEEE Computer Society" 25584c62abc9SPaul E. McKenney,address="Los Alamitos, CA, USA" 25594c62abc9SPaul E. McKenney,annotation={ 25604c62abc9SPaul E. McKenney RCU overview, desiderata, semi-formal semantics, user-level RCU 25614c62abc9SPaul E. McKenney usage scenarios, three classes of RCU implementation, wait-free 25624c62abc9SPaul E. McKenney RCU updates, RCU grace-period batching, update overhead, 25634c62abc9SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf 25644c62abc9SPaul E. McKenney http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf 2565*6ae37718SPaul E. McKenney http://www.computer.org/cms/Computer.org/dl/trans/td/2012/02/extras/ttd2012020375s.pdf 2566*6ae37718SPaul E. McKenney} 2567*6ae37718SPaul E. McKenney} 2568*6ae37718SPaul E. McKenney 2569*6ae37718SPaul E. McKenney@inproceedings{AustinClements2012RCULinux:mmapsem 2570*6ae37718SPaul E. McKenney,author = {Austin Clements and Frans Kaashoek and Nickolai Zeldovich} 2571*6ae37718SPaul E. McKenney,title = {Scalable Address Spaces Using {RCU} Balanced Trees} 2572*6ae37718SPaul E. McKenney,booktitle = {Architectural Support for Programming Languages and Operating Systems (ASPLOS 2012)} 2573*6ae37718SPaul E. McKenney,month = {March} 2574*6ae37718SPaul E. McKenney,year = {2012} 2575*6ae37718SPaul E. McKenney,pages = {199--210} 2576*6ae37718SPaul E. McKenney,numpages = {12} 2577*6ae37718SPaul E. McKenney,publisher = {ACM} 2578*6ae37718SPaul E. McKenney,address = {London, UK} 2579*6ae37718SPaul E. McKenney,url="http://people.csail.mit.edu/nickolai/papers/clements-bonsai.pdf" 2580*6ae37718SPaul E. McKenney} 2581*6ae37718SPaul E. McKenney 2582*6ae37718SPaul E. McKenney@unpublished{PaulEMcKenney2012ELCbattery 2583*6ae37718SPaul E. McKenney,Author="Paul E. McKenney" 2584*6ae37718SPaul E. McKenney,Title="Making {RCU} Safe For Battery-Powered Devices" 2585*6ae37718SPaul E. McKenney,month="February" 2586*6ae37718SPaul E. McKenney,day="15" 2587*6ae37718SPaul E. McKenney,year="2012" 2588*6ae37718SPaul E. McKenney,note="Available: 2589*6ae37718SPaul E. McKenney\url{http://www.rdrop.com/users/paulmck/RCU/RCUdynticks.2012.02.15b.pdf} 2590*6ae37718SPaul E. McKenney[Viewed March 1, 2012]" 2591*6ae37718SPaul E. McKenney,annotation={ 2592*6ae37718SPaul E. McKenney RCU_FAST_NO_HZ, round 2. 2593*6ae37718SPaul E. McKenney} 2594*6ae37718SPaul E. McKenney} 2595*6ae37718SPaul E. McKenney 2596*6ae37718SPaul E. McKenney@article{GuillermoVigueras2012RCUCrowd 2597*6ae37718SPaul E. McKenney,author = {Vigueras, Guillermo and Ordu\~{n}a, Juan M. and Lozano, Miguel} 2598*6ae37718SPaul E. McKenney,day = {25} 2599*6ae37718SPaul E. McKenney,doi = {10.1007/s11227-012-0766-x} 2600*6ae37718SPaul E. McKenney,issn = {0920-8542} 2601*6ae37718SPaul E. McKenney,journal = {The Journal of Supercomputing} 2602*6ae37718SPaul E. McKenney,keywords = {linux, simulation} 2603*6ae37718SPaul E. McKenney,month = apr 2604*6ae37718SPaul E. McKenney,posted-at = {2012-05-03 09:12:04} 2605*6ae37718SPaul E. McKenney,priority = {2} 2606*6ae37718SPaul E. McKenney,title = {{A Read-Copy Update based parallel server for distributed crowd simulations}} 2607*6ae37718SPaul E. McKenney,url = {http://dx.doi.org/10.1007/s11227-012-0766-x} 2608*6ae37718SPaul E. McKenney,year = {2012} 2609*6ae37718SPaul E. McKenney} 2610*6ae37718SPaul E. McKenney 2611*6ae37718SPaul E. McKenney 2612*6ae37718SPaul E. McKenney@unpublished{JonCorbet2012ACCESS:ONCE 2613*6ae37718SPaul E. McKenney,Author="Jon Corbet" 2614*6ae37718SPaul E. McKenney,Title="{ACCESS\_ONCE()}" 2615*6ae37718SPaul E. McKenney,month="August" 2616*6ae37718SPaul E. McKenney,day="1" 2617*6ae37718SPaul E. McKenney,year="2012" 2618*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/508991/}" 2619*6ae37718SPaul E. McKenney,annotation={ 2620*6ae37718SPaul E. McKenney A couple of simple specific compiler optimizations that motivate 2621*6ae37718SPaul E. McKenney ACCESS_ONCE(). 2622*6ae37718SPaul E. McKenney} 2623*6ae37718SPaul E. McKenney} 2624*6ae37718SPaul E. McKenney 2625*6ae37718SPaul E. McKenney@unpublished{AlexeyGotsman2012VerifyGraceExtended 2626*6ae37718SPaul E. McKenney,Author="Alexey Gotsman and Noam Rinetzky and Hongseok Yang" 2627*6ae37718SPaul E. McKenney,Title="Verifying Highly Concurrent Algorithms with Grace (extended version)" 2628*6ae37718SPaul E. McKenney,month="July" 2629*6ae37718SPaul E. McKenney,day="10" 2630*6ae37718SPaul E. McKenney,year="2012" 2631*6ae37718SPaul E. McKenney,note="\url{http://software.imdea.org/~gotsman/papers/recycling-esop13-ext.pdf}" 2632*6ae37718SPaul E. McKenney,annotation={ 2633*6ae37718SPaul E. McKenney Separation-logic formulation of RCU uses. 2634*6ae37718SPaul E. McKenney} 2635*6ae37718SPaul E. McKenney} 2636*6ae37718SPaul E. McKenney 2637*6ae37718SPaul E. McKenney@unpublished{PaulMcKenney2012RCUUsage 2638*6ae37718SPaul E. McKenney,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole" 2639*6ae37718SPaul E. McKenney,Title="{RCU} Usage In the Linux Kernel: One Decade Later" 2640*6ae37718SPaul E. McKenney,month="September" 2641*6ae37718SPaul E. McKenney,day="17" 2642*6ae37718SPaul E. McKenney,year="2012" 2643*6ae37718SPaul E. McKenney,url=http://rdrop.com/users/paulmck/techreports/survey.2012.09.17a.pdf 2644*6ae37718SPaul E. McKenney,note="Technical report paulmck.2012.09.17" 2645*6ae37718SPaul E. McKenney,annotation={ 2646*6ae37718SPaul E. McKenney Overview of the first variant of no-CBs CPUs for RCU. 2647*6ae37718SPaul E. McKenney} 2648*6ae37718SPaul E. McKenney} 2649*6ae37718SPaul E. McKenney 2650*6ae37718SPaul E. McKenney@unpublished{JonCorbet2012NOCB 2651*6ae37718SPaul E. McKenney,Author="Jon Corbet" 2652*6ae37718SPaul E. McKenney,Title="Relocating RCU callbacks" 2653*6ae37718SPaul E. McKenney,month="October" 2654*6ae37718SPaul E. McKenney,day="31" 2655*6ae37718SPaul E. McKenney,year="2012" 2656*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/522262/}" 2657*6ae37718SPaul E. McKenney,annotation={ 2658*6ae37718SPaul E. McKenney Overview of the first variant of no-CBs CPUs for RCU. 2659*6ae37718SPaul E. McKenney} 2660*6ae37718SPaul E. McKenney} 2661*6ae37718SPaul E. McKenney 2662*6ae37718SPaul E. McKenney@phdthesis{JustinSeyster2012PhD 2663*6ae37718SPaul E. McKenney,author="Justin Seyster" 2664*6ae37718SPaul E. McKenney,title="Runtime Verification of Kernel-Level Concurrency Using Compiler-Based Instrumentation" 2665*6ae37718SPaul E. McKenney,school="Stony Brook University" 2666*6ae37718SPaul E. McKenney,year="2012" 2667*6ae37718SPaul E. McKenney,annotation={ 2668*6ae37718SPaul E. McKenney Looking for data races, including those involving RCU. 2669*6ae37718SPaul E. McKenney Proposal: 2670*6ae37718SPaul E. McKenney http://www.fsl.cs.sunysb.edu/docs/jseyster-proposal/redflag.pdf 2671*6ae37718SPaul E. McKenney Dissertation: 2672*6ae37718SPaul E. McKenney http://www.fsl.cs.sunysb.edu/docs/jseyster-dissertation/redflag.pdf 2673*6ae37718SPaul E. McKenney} 2674*6ae37718SPaul E. McKenney} 2675*6ae37718SPaul E. McKenney 2676*6ae37718SPaul E. McKenney@unpublished{PaulEMcKenney2013RCUUsage 2677*6ae37718SPaul E. McKenney,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole" 2678*6ae37718SPaul E. McKenney,Title="{RCU} Usage in the {Linux} Kernel: One Decade Later" 2679*6ae37718SPaul E. McKenney,month="February" 2680*6ae37718SPaul E. McKenney,day="24" 2681*6ae37718SPaul E. McKenney,year="2013" 2682*6ae37718SPaul E. McKenney,note="\url{http://rdrop.com/users/paulmck/techreports/RCUUsage.2013.02.24a.pdf}" 2683*6ae37718SPaul E. McKenney,annotation={ 2684*6ae37718SPaul E. McKenney Usage of RCU within the Linux kernel. 2685*6ae37718SPaul E. McKenney} 2686*6ae37718SPaul E. McKenney} 2687*6ae37718SPaul E. McKenney 2688*6ae37718SPaul E. McKenney@inproceedings{AlexeyGotsman2013ESOPRCU 2689*6ae37718SPaul E. McKenney,author = {Alexey Gotsman and Noam Rinetzky and Hongseok Yang} 2690*6ae37718SPaul E. McKenney,title = {Verifying concurrent memory reclamation algorithms with grace} 2691*6ae37718SPaul E. McKenney,booktitle = {ESOP'13: European Symposium on Programming} 2692*6ae37718SPaul E. McKenney,year = {2013} 2693*6ae37718SPaul E. McKenney,pages = {249--269} 2694*6ae37718SPaul E. McKenney,publisher = {Springer} 2695*6ae37718SPaul E. McKenney,address = {Rome, Italy} 2696*6ae37718SPaul E. McKenney,annotation={ 2697*6ae37718SPaul E. McKenney http://software.imdea.org/~gotsman/papers/recycling-esop13.pdf 2698*6ae37718SPaul E. McKenney} 2699*6ae37718SPaul E. McKenney} 2700*6ae37718SPaul E. McKenney 2701*6ae37718SPaul E. McKenney@unpublished{PaulEMcKenney2013NoTinyPreempt 2702*6ae37718SPaul E. McKenney,Author="Paul E. McKenney" 2703*6ae37718SPaul E. McKenney,Title="Simplifying RCU" 2704*6ae37718SPaul E. McKenney,month="March" 2705*6ae37718SPaul E. McKenney,day="6" 2706*6ae37718SPaul E. McKenney,year="2013" 2707*6ae37718SPaul E. McKenney,note="\url{http://lwn.net/Articles/541037/}" 2708*6ae37718SPaul E. McKenney,annotation={ 2709*6ae37718SPaul E. McKenney Getting rid of TINY_PREEMPT_RCU. 27104c62abc9SPaul E. McKenney} 27114c54005cSPaul E. McKenney} 2712