diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-05-01 13:05:01 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-08-20 00:39:27 -0400 |
commit | 6ae3771850910018c89b4ce063c52008bf2c8d6a (patch) | |
tree | f7ad31aa03b0b87da3186af48102175bb38fa7d0 /Documentation/RCU | |
parent | d84297c99bd9f63baf92c9f2d36582f879858664 (diff) |
rcu: Update RTFP documentation
Note that this commit also updates the formatting of serveral of the
bibtex entries to conform to that of my .bib files. I started
accumulating entries back in the 1980s, back when bibtex insisted
that comma (",") was a separator, not a terminator. This rule forced
commas to the fronts of lines. 25 years later, bibtex allows commas
to be terminators, but I am too lazy to rework all my .bib files.
Keeping the same format as my .bib files allows my to simply
incorporate my RCU.bib file into Documentation/RCU/RTFP.txt, which
is much easier than my earlier practice of keeping track of what
had changed and adding individual entries. (I sometimes find relevant
papers that were published some years back, for example.)
In addition, this change adds entries for papers published in the
last year or so.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r-- | Documentation/RCU/RTFP.txt | 858 |
1 files changed, 553 insertions, 305 deletions
diff --git a/Documentation/RCU/RTFP.txt b/Documentation/RCU/RTFP.txt index 7f40c72a9c51..273e654d7d08 100644 --- a/Documentation/RCU/RTFP.txt +++ b/Documentation/RCU/RTFP.txt | |||
@@ -39,7 +39,7 @@ in read-mostly situations. This algorithm does take pains to avoid | |||
39 | write-side contention and parallelize the other write-side overheads by | 39 | write-side contention and parallelize the other write-side overheads by |
40 | providing a fine-grained locking design, however, it would be interesting | 40 | providing a fine-grained locking design, however, it would be interesting |
41 | to see how much of the performance advantage reported in 1990 remains | 41 | to see how much of the performance advantage reported in 1990 remains |
42 | in 2004. | 42 | today. |
43 | 43 | ||
44 | At about this same time, Adams [Adams91] described ``chaotic relaxation'', | 44 | At about this same time, Adams [Adams91] described ``chaotic relaxation'', |
45 | where the normal barriers between successive iterations of convergent | 45 | where the normal barriers between successive iterations of convergent |
@@ -86,9 +86,9 @@ DYNIX/ptx kernel. The corresponding conference paper appeared in 1998 | |||
86 | [McKenney98]. | 86 | [McKenney98]. |
87 | 87 | ||
88 | In 1999, the Tornado and K42 groups described their "generations" | 88 | In 1999, the Tornado and K42 groups described their "generations" |
89 | mechanism, which quite similar to RCU [Gamsa99]. These operating systems | 89 | mechanism, which is quite similar to RCU [Gamsa99]. These operating |
90 | made pervasive use of RCU in place of "existence locks", which greatly | 90 | systems made pervasive use of RCU in place of "existence locks", which |
91 | simplifies locking hierarchies. | 91 | greatly simplifies locking hierarchies and helps avoid deadlocks. |
92 | 92 | ||
93 | 2001 saw the first RCU presentation involving Linux [McKenney01a] | 93 | 2001 saw the first RCU presentation involving Linux [McKenney01a] |
94 | at OLS. The resulting abundance of RCU patches was presented the | 94 | at OLS. The resulting abundance of RCU patches was presented the |
@@ -106,8 +106,11 @@ these techniques still impose significant read-side overhead in the | |||
106 | form of memory barriers. Researchers at Sun worked along similar lines | 106 | form of memory barriers. Researchers at Sun worked along similar lines |
107 | in the same timeframe [HerlihyLM02]. These techniques can be thought | 107 | in the same timeframe [HerlihyLM02]. These techniques can be thought |
108 | of as inside-out reference counts, where the count is represented by the | 108 | of as inside-out reference counts, where the count is represented by the |
109 | number of hazard pointers referencing a given data structure (rather than | 109 | number of hazard pointers referencing a given data structure rather than |
110 | the more conventional counter field within the data structure itself). | 110 | the more conventional counter field within the data structure itself. |
111 | The key advantage of inside-out reference counts is that they can be | ||
112 | stored in immortal variables, thus allowing races between access and | ||
113 | deletion to be avoided. | ||
111 | 114 | ||
112 | By the same token, RCU can be thought of as a "bulk reference count", | 115 | By the same token, RCU can be thought of as a "bulk reference count", |
113 | where some form of reference counter covers all reference by a given CPU | 116 | where some form of reference counter covers all reference by a given CPU |
@@ -179,7 +182,25 @@ tree using software transactional memory to protect concurrent updates | |||
179 | (strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of | 182 | (strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of |
180 | RCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU | 183 | RCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU |
181 | trainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the | 184 | trainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the |
182 | Lockers" LWN article [NeilBrown2011MeetTheLockers]. | 185 | Lockers" LWN article [NeilBrown2011MeetTheLockers]. Some academic |
186 | work looked at debugging uses of RCU [Seyster:2011:RFA:2075416.2075425]. | ||
187 | |||
188 | In 2012, Josh Triplett received his Ph.D. with his dissertation | ||
189 | covering RCU-protected resizable hash tables and the relationship | ||
190 | between memory barriers and read-side traversal order: If the updater | ||
191 | is making changes in the opposite direction from the read-side traveral | ||
192 | order, the updater need only execute a memory-barrier instruction, | ||
193 | but if in the same direction, the updater needs to wait for a grace | ||
194 | period between the individual updates [JoshTriplettPhD]. Also in 2012, | ||
195 | after seventeen years of attempts, an RCU paper made it into a top-flight | ||
196 | academic journal, IEEE Transactions on Parallel and Distributed Systems | ||
197 | [MathieuDesnoyers2012URCU]. A group of researchers in Spain applied | ||
198 | user-level RCU to crowd simulation [GuillermoVigueras2012RCUCrowd], and | ||
199 | another group of researchers in Europe produced a formal description of | ||
200 | RCU based on separation logic [AlexeyGotsman2012VerifyGraceExtended], | ||
201 | which was published in the 2013 European Symposium on Programming | ||
202 | [AlexeyGotsman2013ESOPRCU]. | ||
203 | |||
183 | 204 | ||
184 | 205 | ||
185 | Bibtex Entries | 206 | Bibtex Entries |
@@ -193,13 +214,12 @@ Bibtex Entries | |||
193 | ,volume="5" | 214 | ,volume="5" |
194 | ,number="3" | 215 | ,number="3" |
195 | ,pages="354-382" | 216 | ,pages="354-382" |
196 | ,note="Available: | ||
197 | \url{http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE,} | ||
198 | [Viewed December 3, 2007]" | ||
199 | ,annotation={ | 217 | ,annotation={ |
200 | Use garbage collector to clean up data after everyone is done with it. | 218 | Use garbage collector to clean up data after everyone is done with it. |
201 | . | 219 | . |
202 | Oldest use of something vaguely resembling RCU that I have found. | 220 | Oldest use of something vaguely resembling RCU that I have found. |
221 | http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE, | ||
222 | [Viewed December 3, 2007] | ||
203 | } | 223 | } |
204 | } | 224 | } |
205 | 225 | ||
@@ -309,7 +329,7 @@ for Programming Languages and Operating Systems}" | |||
309 | ,doi = {http://doi.acm.org/10.1145/42392.42399} | 329 | ,doi = {http://doi.acm.org/10.1145/42392.42399} |
310 | ,publisher = {ACM} | 330 | ,publisher = {ACM} |
311 | ,address = {New York, NY, USA} | 331 | ,address = {New York, NY, USA} |
312 | ,annotation= { | 332 | ,annotation={ |
313 | At the top of page 307: "Conflicts with deposits and withdrawals | 333 | At the top of page 307: "Conflicts with deposits and withdrawals |
314 | are necessary if the reported total is to be up to date. They | 334 | are necessary if the reported total is to be up to date. They |
315 | could be avoided by having total return a sum that is slightly | 335 | could be avoided by having total return a sum that is slightly |
@@ -346,8 +366,9 @@ for Programming Languages and Operating Systems}" | |||
346 | } | 366 | } |
347 | } | 367 | } |
348 | 368 | ||
349 | @Book{Adams91 | 369 | # Was Adams91, see also syncrefs.bib. |
350 | ,Author="Gregory R. Adams" | 370 | @Book{Andrews91textbook |
371 | ,Author="Gregory R. Andrews" | ||
351 | ,title="Concurrent Programming, Principles, and Practices" | 372 | ,title="Concurrent Programming, Principles, and Practices" |
352 | ,Publisher="Benjamin Cummins" | 373 | ,Publisher="Benjamin Cummins" |
353 | ,Year="1991" | 374 | ,Year="1991" |
@@ -398,39 +419,39 @@ for Programming Languages and Operating Systems}" | |||
398 | } | 419 | } |
399 | } | 420 | } |
400 | 421 | ||
401 | @conference{Pu95a, | 422 | @conference{Pu95a |
402 | Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and | 423 | ,Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and |
403 | Crispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and | 424 | Crispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and |
404 | Ke Zhang", | 425 | Ke Zhang" |
405 | Title = "Optimistic Incremental Specialization: Streamlining a Commercial | 426 | ,Title = "Optimistic Incremental Specialization: Streamlining a Commercial |
406 | Operating System", | 427 | ,Operating System" |
407 | Booktitle = "15\textsuperscript{th} ACM Symposium on | 428 | ,Booktitle = "15\textsuperscript{th} ACM Symposium on |
408 | Operating Systems Principles (SOSP'95)", | 429 | ,Operating Systems Principles (SOSP'95)" |
409 | address = "Copper Mountain, CO", | 430 | ,address = "Copper Mountain, CO" |
410 | month="December", | 431 | ,month="December" |
411 | year="1995", | 432 | ,year="1995" |
412 | pages="314-321", | 433 | ,pages="314-321" |
413 | annotation=" | 434 | ,annotation={ |
414 | Uses a replugger, but with a flag to signal when people are | 435 | Uses a replugger, but with a flag to signal when people are |
415 | using the resource at hand. Only one reader at a time. | 436 | using the resource at hand. Only one reader at a time. |
416 | " | 437 | } |
417 | } | 438 | } |
418 | 439 | ||
419 | @conference{Cowan96a, | 440 | @conference{Cowan96a |
420 | Author = "Crispin Cowan and Tito Autrey and Charles Krasic and | 441 | ,Author = "Crispin Cowan and Tito Autrey and Charles Krasic and |
421 | Calton Pu and Jonathan Walpole", | 442 | ,Calton Pu and Jonathan Walpole" |
422 | Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System", | 443 | ,Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System" |
423 | Booktitle = "International Conference on Configurable Distributed Systems | 444 | ,Booktitle = "International Conference on Configurable Distributed Systems |
424 | (ICCDS'96)", | 445 | (ICCDS'96)" |
425 | address = "Annapolis, MD", | 446 | ,address = "Annapolis, MD" |
426 | month="May", | 447 | ,month="May" |
427 | year="1996", | 448 | ,year="1996" |
428 | pages="108", | 449 | ,pages="108" |
429 | isbn="0-8186-7395-8", | 450 | ,isbn="0-8186-7395-8" |
430 | annotation=" | 451 | ,annotation={ |
431 | Uses a replugger, but with a counter to signal when people are | 452 | Uses a replugger, but with a counter to signal when people are |
432 | using the resource at hand. Allows multiple readers. | 453 | using the resource at hand. Allows multiple readers. |
433 | " | 454 | } |
434 | } | 455 | } |
435 | 456 | ||
436 | @techreport{Slingwine95 | 457 | @techreport{Slingwine95 |
@@ -493,14 +514,13 @@ Problems" | |||
493 | ,Year="1998" | 514 | ,Year="1998" |
494 | ,pages="509-518" | 515 | ,pages="509-518" |
495 | ,Address="Las Vegas, NV" | 516 | ,Address="Las Vegas, NV" |
496 | ,note="Available: | ||
497 | \url{http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf} | ||
498 | [Viewed December 3, 2007]" | ||
499 | ,annotation={ | 517 | ,annotation={ |
500 | Describes and analyzes RCU mechanism in DYNIX/ptx. Describes | 518 | Describes and analyzes RCU mechanism in DYNIX/ptx. Describes |
501 | application to linked list update and log-buffer flushing. | 519 | application to linked list update and log-buffer flushing. |
502 | Defines 'quiescent state'. Includes both measured and analytic | 520 | Defines 'quiescent state'. Includes both measured and analytic |
503 | evaluation. | 521 | evaluation. |
522 | http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf | ||
523 | [Viewed December 3, 2007] | ||
504 | } | 524 | } |
505 | } | 525 | } |
506 | 526 | ||
@@ -514,13 +534,12 @@ Operating System Design and Implementation}" | |||
514 | ,Year="1999" | 534 | ,Year="1999" |
515 | ,pages="87-100" | 535 | ,pages="87-100" |
516 | ,Address="New Orleans, LA" | 536 | ,Address="New Orleans, LA" |
517 | ,note="Available: | ||
518 | \url{http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf} | ||
519 | [Viewed August 30, 2006]" | ||
520 | ,annotation={ | 537 | ,annotation={ |
521 | Use of RCU-like facility in K42/Tornado. Another independent | 538 | Use of RCU-like facility in K42/Tornado. Another independent |
522 | invention of RCU. | 539 | invention of RCU. |
523 | See especially pages 7-9 (Section 5). | 540 | See especially pages 7-9 (Section 5). |
541 | http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf | ||
542 | [Viewed August 30, 2006] | ||
524 | } | 543 | } |
525 | } | 544 | } |
526 | 545 | ||
@@ -611,9 +630,9 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
611 | ,note="Available: | 630 | ,note="Available: |
612 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2} | 631 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2} |
613 | [Viewed June 23, 2004]" | 632 | [Viewed June 23, 2004]" |
614 | ,annotation=" | 633 | ,annotation={ |
615 | Memory-barrier and Alpha thread. 100 messages, not too bad... | 634 | Memory-barrier and Alpha thread. 100 messages, not too bad... |
616 | " | 635 | } |
617 | } | 636 | } |
618 | 637 | ||
619 | @unpublished{Spraul01 | 638 | @unpublished{Spraul01 |
@@ -624,10 +643,10 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
624 | ,note="Available: | 643 | ,note="Available: |
625 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2} | 644 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2} |
626 | [Viewed June 23, 2004]" | 645 | [Viewed June 23, 2004]" |
627 | ,annotation=" | 646 | ,annotation={ |
628 | Suggested burying memory barriers in Linux's list-manipulation | 647 | Suggested burying memory barriers in Linux's list-manipulation |
629 | primitives. | 648 | primitives. |
630 | " | 649 | } |
631 | } | 650 | } |
632 | 651 | ||
633 | @unpublished{LinusTorvalds2001a | 652 | @unpublished{LinusTorvalds2001a |
@@ -638,6 +657,8 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
638 | ,note="Available: | 657 | ,note="Available: |
639 | \url{http://lkml.org/lkml/2001/10/13/105} | 658 | \url{http://lkml.org/lkml/2001/10/13/105} |
640 | [Viewed August 21, 2004]" | 659 | [Viewed August 21, 2004]" |
660 | ,annotation={ | ||
661 | } | ||
641 | } | 662 | } |
642 | 663 | ||
643 | @unpublished{Blanchard02a | 664 | @unpublished{Blanchard02a |
@@ -657,10 +678,10 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni" | |||
657 | ,Month="June" | 678 | ,Month="June" |
658 | ,Year="2002" | 679 | ,Year="2002" |
659 | ,pages="289-300" | 680 | ,pages="289-300" |
660 | ,annotation=" | 681 | ,annotation={ |
661 | Measured scalability of Linux 2.4 kernel's directory-entry cache | 682 | Measured scalability of Linux 2.4 kernel's directory-entry cache |
662 | (dcache), and measured some scalability enhancements. | 683 | (dcache), and measured some scalability enhancements. |
663 | " | 684 | } |
664 | } | 685 | } |
665 | 686 | ||
666 | @Conference{McKenney02a | 687 | @Conference{McKenney02a |
@@ -674,10 +695,10 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
674 | ,note="Available: | 695 | ,note="Available: |
675 | \url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} | 696 | \url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} |
676 | [Viewed June 23, 2004]" | 697 | [Viewed June 23, 2004]" |
677 | ,annotation=" | 698 | ,annotation={ |
678 | Presented and compared a number of RCU implementations for the | 699 | Presented and compared a number of RCU implementations for the |
679 | Linux kernel. | 700 | Linux kernel. |
680 | " | 701 | } |
681 | } | 702 | } |
682 | 703 | ||
683 | @unpublished{Sarma02a | 704 | @unpublished{Sarma02a |
@@ -688,9 +709,9 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
688 | ,note="Available: | 709 | ,note="Available: |
689 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2} | 710 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2} |
690 | [Viewed June 23, 2004]" | 711 | [Viewed June 23, 2004]" |
691 | ,annotation=" | 712 | ,annotation={ |
692 | Compare fastwalk and RCU for dcache. RCU won. | 713 | Compare fastwalk and RCU for dcache. RCU won. |
693 | " | 714 | } |
694 | } | 715 | } |
695 | 716 | ||
696 | @unpublished{Barbieri02 | 717 | @unpublished{Barbieri02 |
@@ -701,9 +722,9 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
701 | ,note="Available: | 722 | ,note="Available: |
702 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2} | 723 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2} |
703 | [Viewed: June 23, 2004]" | 724 | [Viewed: June 23, 2004]" |
704 | ,annotation=" | 725 | ,annotation={ |
705 | Suggested RCU for vfs\_shared\_cred. | 726 | Suggested RCU for vfs\_shared\_cred. |
706 | " | 727 | } |
707 | } | 728 | } |
708 | 729 | ||
709 | @unpublished{Dickins02a | 730 | @unpublished{Dickins02a |
@@ -722,10 +743,10 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
722 | ,note="Available: | 743 | ,note="Available: |
723 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2} | 744 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2} |
724 | [Viewed June 23, 2004]" | 745 | [Viewed June 23, 2004]" |
725 | ,annotation=" | 746 | ,annotation={ |
726 | Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x, | 747 | Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x, |
727 | 2x, and 4x systems. RCU does no harm, and helps on 16x. | 748 | 2x, and 4x systems. RCU does no harm, and helps on 16x. |
728 | " | 749 | } |
729 | } | 750 | } |
730 | 751 | ||
731 | @unpublished{LinusTorvalds2003a | 752 | @unpublished{LinusTorvalds2003a |
@@ -736,14 +757,14 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell" | |||
736 | ,note="Available: | 757 | ,note="Available: |
737 | \url{http://lkml.org/lkml/2003/3/9/205} | 758 | \url{http://lkml.org/lkml/2003/3/9/205} |
738 | [Viewed March 13, 2006]" | 759 | [Viewed March 13, 2006]" |
739 | ,annotation=" | 760 | ,annotation={ |
740 | Linus suggests replacing brlock with RCU and/or seqlocks: | 761 | Linus suggests replacing brlock with RCU and/or seqlocks: |
741 | . | 762 | . |
742 | 'It's entirely possible that the current user could be replaced | 763 | 'It's entirely possible that the current user could be replaced |
743 | by RCU and/or seqlocks, and we could get rid of brlocks entirely.' | 764 | by RCU and/or seqlocks, and we could get rid of brlocks entirely.' |
744 | . | 765 | . |
745 | Steve Hemminger responds by replacing them with RCU. | 766 | Steve Hemminger responds by replacing them with RCU. |
746 | " | 767 | } |
747 | } | 768 | } |
748 | 769 | ||
749 | @article{Appavoo03a | 770 | @article{Appavoo03a |
@@ -758,9 +779,9 @@ B. Rosenburg and M. Stumm and J. Xenidis" | |||
758 | ,volume="42" | 779 | ,volume="42" |
759 | ,number="1" | 780 | ,number="1" |
760 | ,pages="60-76" | 781 | ,pages="60-76" |
761 | ,annotation=" | 782 | ,annotation={ |
762 | Use of RCU to enable hot-swapping for autonomic behavior in K42. | 783 | Use of RCU to enable hot-swapping for autonomic behavior in K42. |
763 | " | 784 | } |
764 | } | 785 | } |
765 | 786 | ||
766 | @unpublished{Seigh03 | 787 | @unpublished{Seigh03 |
@@ -769,9 +790,9 @@ B. Rosenburg and M. Stumm and J. Xenidis" | |||
769 | ,Year="2003" | 790 | ,Year="2003" |
770 | ,Month="March" | 791 | ,Month="March" |
771 | ,note="email correspondence" | 792 | ,note="email correspondence" |
772 | ,annotation=" | 793 | ,annotation={ |
773 | Described the relationship of the VM/XA passive serialization to RCU. | 794 | Described the relationship of the VM/XA passive serialization to RCU. |
774 | " | 795 | } |
775 | } | 796 | } |
776 | 797 | ||
777 | @Conference{Arcangeli03 | 798 | @Conference{Arcangeli03 |
@@ -785,14 +806,12 @@ Dipankar Sarma" | |||
785 | ,year="2003" | 806 | ,year="2003" |
786 | ,month="June" | 807 | ,month="June" |
787 | ,pages="297-310" | 808 | ,pages="297-310" |
788 | ,note="Available: | 809 | ,annotation={ |
789 | \url{http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf} | ||
790 | [Viewed November 21, 2007]" | ||
791 | ,annotation=" | ||
792 | Compared updated RCU implementations for the Linux kernel, and | 810 | Compared updated RCU implementations for the Linux kernel, and |
793 | described System V IPC use of RCU, including order-of-magnitude | 811 | described System V IPC use of RCU, including order-of-magnitude |
794 | performance improvements. | 812 | performance improvements. |
795 | " | 813 | http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf |
814 | } | ||
796 | } | 815 | } |
797 | 816 | ||
798 | @Conference{Soules03a | 817 | @Conference{Soules03a |
@@ -820,10 +839,10 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
820 | ,note="Available: | 839 | ,note="Available: |
821 | \url{http://www.linuxjournal.com/article/6993} | 840 | \url{http://www.linuxjournal.com/article/6993} |
822 | [Viewed November 14, 2007]" | 841 | [Viewed November 14, 2007]" |
823 | ,annotation=" | 842 | ,annotation={ |
824 | Reader-friendly intro to RCU, with the infamous old-man-and-brat | 843 | Reader-friendly intro to RCU, with the infamous old-man-and-brat |
825 | cartoon. | 844 | cartoon. |
826 | " | 845 | } |
827 | } | 846 | } |
828 | 847 | ||
829 | @unpublished{Sarma03a | 848 | @unpublished{Sarma03a |
@@ -832,7 +851,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
832 | ,month="December" | 851 | ,month="December" |
833 | ,year="2003" | 852 | ,year="2003" |
834 | ,note="Message ID: 20031222180114.GA2248@in.ibm.com" | 853 | ,note="Message ID: 20031222180114.GA2248@in.ibm.com" |
835 | ,annotation="dipankar/ct.2004.03.27/RCUll.2003.12.22.patch" | 854 | ,annotation={ |
855 | dipankar/ct.2004.03.27/RCUll.2003.12.22.patch | ||
856 | } | ||
836 | } | 857 | } |
837 | 858 | ||
838 | @techreport{Friedberg03a | 859 | @techreport{Friedberg03a |
@@ -844,11 +865,11 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
844 | ,number="US Patent 6,662,184" | 865 | ,number="US Patent 6,662,184" |
845 | ,month="December" | 866 | ,month="December" |
846 | ,pages="112" | 867 | ,pages="112" |
847 | ,annotation=" | 868 | ,annotation={ |
848 | Applies RCU to a wildcard-search Patricia tree in order to permit | 869 | Applies RCU to a wildcard-search Patricia tree in order to permit |
849 | synchronization-free lookup. RCU is used to retain removed nodes | 870 | synchronization-free lookup. RCU is used to retain removed nodes |
850 | for a grace period before freeing them. | 871 | for a grace period before freeing them. |
851 | " | 872 | } |
852 | } | 873 | } |
853 | 874 | ||
854 | @article{McKenney04a | 875 | @article{McKenney04a |
@@ -860,12 +881,11 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
860 | ,volume="1" | 881 | ,volume="1" |
861 | ,number="118" | 882 | ,number="118" |
862 | ,pages="38-46" | 883 | ,pages="38-46" |
863 | ,note="Available: | 884 | ,annotation={ |
864 | \url{http://www.linuxjournal.com/node/7124} | ||
865 | [Viewed December 26, 2010]" | ||
866 | ,annotation=" | ||
867 | Reader friendly intro to dcache and RCU. | 885 | Reader friendly intro to dcache and RCU. |
868 | " | 886 | http://www.linuxjournal.com/node/7124 |
887 | [Viewed December 26, 2010] | ||
888 | } | ||
869 | } | 889 | } |
870 | 890 | ||
871 | @Conference{McKenney04b | 891 | @Conference{McKenney04b |
@@ -879,10 +899,10 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
879 | \url{http://www.linux.org.au/conf/2004/abstracts.html#90} | 899 | \url{http://www.linux.org.au/conf/2004/abstracts.html#90} |
880 | \url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf} | 900 | \url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf} |
881 | [Viewed June 23, 2004]" | 901 | [Viewed June 23, 2004]" |
882 | ,annotation=" | 902 | ,annotation={ |
883 | Compares performance of RCU to that of other locking primitives | 903 | Compares performance of RCU to that of other locking primitives |
884 | over a number of CPUs (x86, Opteron, Itanium, and PPC). | 904 | over a number of CPUs (x86, Opteron, Itanium, and PPC). |
885 | " | 905 | } |
886 | } | 906 | } |
887 | 907 | ||
888 | @unpublished{Sarma04a | 908 | @unpublished{Sarma04a |
@@ -891,7 +911,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
891 | ,month="March" | 911 | ,month="March" |
892 | ,year="2004" | 912 | ,year="2004" |
893 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}" | 913 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}" |
894 | ,annotation="Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch" | 914 | ,annotation={ |
915 | Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch | ||
916 | } | ||
895 | } | 917 | } |
896 | 918 | ||
897 | @unpublished{Sarma04b | 919 | @unpublished{Sarma04b |
@@ -900,7 +922,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
900 | ,month="March" | 922 | ,month="March" |
901 | ,year="2004" | 923 | ,year="2004" |
902 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}" | 924 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}" |
903 | ,annotation="dipankar/rcuth.2004.03.24/rcu-throttle.patch" | 925 | ,annotation={ |
926 | dipankar/rcuth.2004.03.24/rcu-throttle.patch | ||
927 | } | ||
904 | } | 928 | } |
905 | 929 | ||
906 | @unpublished{Spraul04a | 930 | @unpublished{Spraul04a |
@@ -911,9 +935,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis" | |||
911 | ,note="Available: | 935 | ,note="Available: |
912 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2} | 936 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2} |
913 | [Viewed June 23, 2004]" | 937 | [Viewed June 23, 2004]" |
914 | ,annotation=" | 938 | ,annotation={ |
915 | Hierarchical-bitmap patch for RCU infrastructure. | 939 | Hierarchical-bitmap patch for RCU infrastructure. |
916 | " | 940 | } |
917 | } | 941 | } |
918 | 942 | ||
919 | @unpublished{Steiner04a | 943 | @unpublished{Steiner04a |
@@ -950,10 +974,12 @@ Realtime Applications" | |||
950 | ,year="2004" | 974 | ,year="2004" |
951 | ,month="June" | 975 | ,month="June" |
952 | ,pages="182-191" | 976 | ,pages="182-191" |
953 | ,annotation=" | 977 | ,annotation={ |
954 | Describes and compares a number of modifications to the Linux RCU | 978 | Describes and compares a number of modifications to the Linux RCU |
955 | implementation that make it friendly to realtime applications. | 979 | implementation that make it friendly to realtime applications. |
956 | " | 980 | https://www.usenix.org/conference/2004-usenix-annual-technical-conference/making-rcu-safe-deep-sub-millisecond-response |
981 | [Viewed July 26, 2012] | ||
982 | } | ||
957 | } | 983 | } |
958 | 984 | ||
959 | @phdthesis{PaulEdwardMcKenneyPhD | 985 | @phdthesis{PaulEdwardMcKenneyPhD |
@@ -964,14 +990,13 @@ in Operating System Kernels" | |||
964 | ,school="OGI School of Science and Engineering at | 990 | ,school="OGI School of Science and Engineering at |
965 | Oregon Health and Sciences University" | 991 | Oregon Health and Sciences University" |
966 | ,year="2004" | 992 | ,year="2004" |
967 | ,note="Available: | 993 | ,annotation={ |
968 | \url{http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf} | ||
969 | [Viewed October 15, 2004]" | ||
970 | ,annotation=" | ||
971 | Describes RCU implementations and presents design patterns | 994 | Describes RCU implementations and presents design patterns |
972 | corresponding to common uses of RCU in several operating-system | 995 | corresponding to common uses of RCU in several operating-system |
973 | kernels. | 996 | kernels. |
974 | " | 997 | http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf |
998 | [Viewed October 15, 2004] | ||
999 | } | ||
975 | } | 1000 | } |
976 | 1001 | ||
977 | @unpublished{PaulEMcKenney2004rcu:dereference | 1002 | @unpublished{PaulEMcKenney2004rcu:dereference |
@@ -982,9 +1007,9 @@ Oregon Health and Sciences University" | |||
982 | ,note="Available: | 1007 | ,note="Available: |
983 | \url{http://lkml.org/lkml/2004/8/6/237} | 1008 | \url{http://lkml.org/lkml/2004/8/6/237} |
984 | [Viewed June 8, 2010]" | 1009 | [Viewed June 8, 2010]" |
985 | ,annotation=" | 1010 | ,annotation={ |
986 | Introduce rcu_dereference(). | 1011 | Introduce rcu_dereference(). |
987 | " | 1012 | } |
988 | } | 1013 | } |
989 | 1014 | ||
990 | @unpublished{JimHouston04a | 1015 | @unpublished{JimHouston04a |
@@ -995,11 +1020,11 @@ Oregon Health and Sciences University" | |||
995 | ,note="Available: | 1020 | ,note="Available: |
996 | \url{http://lkml.org/lkml/2004/8/30/87} | 1021 | \url{http://lkml.org/lkml/2004/8/30/87} |
997 | [Viewed February 17, 2005]" | 1022 | [Viewed February 17, 2005]" |
998 | ,annotation=" | 1023 | ,annotation={ |
999 | Uses active code in rcu_read_lock() and rcu_read_unlock() to | 1024 | Uses active code in rcu_read_lock() and rcu_read_unlock() to |
1000 | make RCU happen, allowing RCU to function on CPUs that do not | 1025 | make RCU happen, allowing RCU to function on CPUs that do not |
1001 | receive a scheduling-clock interrupt. | 1026 | receive a scheduling-clock interrupt. |
1002 | " | 1027 | } |
1003 | } | 1028 | } |
1004 | 1029 | ||
1005 | @unpublished{TomHart04a | 1030 | @unpublished{TomHart04a |
@@ -1010,9 +1035,9 @@ Oregon Health and Sciences University" | |||
1010 | ,note="Available: | 1035 | ,note="Available: |
1011 | \url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html} | 1036 | \url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html} |
1012 | [Viewed October 15, 2004]" | 1037 | [Viewed October 15, 2004]" |
1013 | ,annotation=" | 1038 | ,annotation={ |
1014 | Proposes comparing RCU to lock-free methods for the Linux kernel. | 1039 | Proposes comparing RCU to lock-free methods for the Linux kernel. |
1015 | " | 1040 | } |
1016 | } | 1041 | } |
1017 | 1042 | ||
1018 | @unpublished{Vaddagiri04a | 1043 | @unpublished{Vaddagiri04a |
@@ -1023,9 +1048,9 @@ Oregon Health and Sciences University" | |||
1023 | ,note="Available: | 1048 | ,note="Available: |
1024 | \url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2} | 1049 | \url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2} |
1025 | [Viewed October 18, 2004]" | 1050 | [Viewed October 18, 2004]" |
1026 | ,annotation=" | 1051 | ,annotation={ |
1027 | Srivatsa's RCU patch for tcp_ehash lookup. | 1052 | Srivatsa's RCU patch for tcp_ehash lookup. |
1028 | " | 1053 | } |
1029 | } | 1054 | } |
1030 | 1055 | ||
1031 | @unpublished{Thirumalai04a | 1056 | @unpublished{Thirumalai04a |
@@ -1036,9 +1061,9 @@ Oregon Health and Sciences University" | |||
1036 | ,note="Available: | 1061 | ,note="Available: |
1037 | \url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2} | 1062 | \url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2} |
1038 | [Viewed October 18, 2004]" | 1063 | [Viewed October 18, 2004]" |
1039 | ,annotation=" | 1064 | ,annotation={ |
1040 | Ravikiran's lockfree FD patch. | 1065 | Ravikiran's lockfree FD patch. |
1041 | " | 1066 | } |
1042 | } | 1067 | } |
1043 | 1068 | ||
1044 | @unpublished{Thirumalai04b | 1069 | @unpublished{Thirumalai04b |
@@ -1049,9 +1074,9 @@ Oregon Health and Sciences University" | |||
1049 | ,note="Available: | 1074 | ,note="Available: |
1050 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2} | 1075 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2} |
1051 | [Viewed October 18, 2004]" | 1076 | [Viewed October 18, 2004]" |
1052 | ,annotation=" | 1077 | ,annotation={ |
1053 | Ravikiran's lockfree FD patch. | 1078 | Ravikiran's lockfree FD patch. |
1054 | " | 1079 | } |
1055 | } | 1080 | } |
1056 | 1081 | ||
1057 | @unpublished{PaulEMcKenney2004rcu:assign:pointer | 1082 | @unpublished{PaulEMcKenney2004rcu:assign:pointer |
@@ -1062,9 +1087,9 @@ Oregon Health and Sciences University" | |||
1062 | ,note="Available: | 1087 | ,note="Available: |
1063 | \url{http://lkml.org/lkml/2004/10/23/241} | 1088 | \url{http://lkml.org/lkml/2004/10/23/241} |
1064 | [Viewed June 8, 2010]" | 1089 | [Viewed June 8, 2010]" |
1065 | ,annotation=" | 1090 | ,annotation={ |
1066 | Introduce rcu_assign_pointer(). | 1091 | Introduce rcu_assign_pointer(). |
1067 | " | 1092 | } |
1068 | } | 1093 | } |
1069 | 1094 | ||
1070 | @unpublished{JamesMorris04a | 1095 | @unpublished{JamesMorris04a |
@@ -1073,12 +1098,12 @@ Oregon Health and Sciences University" | |||
1073 | ,day="15" | 1098 | ,day="15" |
1074 | ,month="November" | 1099 | ,month="November" |
1075 | ,year="2004" | 1100 | ,year="2004" |
1076 | ,note="Available: | 1101 | ,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2}" |
1077 | \url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2} | 1102 | ,annotation={ |
1078 | [Viewed December 10, 2004]" | ||
1079 | ,annotation=" | ||
1080 | James Morris posts Kaigai Kohei's patch to LKML. | 1103 | James Morris posts Kaigai Kohei's patch to LKML. |
1081 | " | 1104 | [Viewed December 10, 2004] |
1105 | Kaigai's patch is at https://lkml.org/lkml/2004/9/27/52 | ||
1106 | } | ||
1082 | } | 1107 | } |
1083 | 1108 | ||
1084 | @unpublished{JamesMorris04b | 1109 | @unpublished{JamesMorris04b |
@@ -1089,9 +1114,9 @@ Oregon Health and Sciences University" | |||
1089 | ,note="Available: | 1114 | ,note="Available: |
1090 | \url{http://www.livejournal.com/users/james_morris/2153.html} | 1115 | \url{http://www.livejournal.com/users/james_morris/2153.html} |
1091 | [Viewed December 10, 2004]" | 1116 | [Viewed December 10, 2004]" |
1092 | ,annotation=" | 1117 | ,annotation={ |
1093 | RCU helps SELinux performance. ;-) Made LWN. | 1118 | RCU helps SELinux performance. ;-) Made LWN. |
1094 | " | 1119 | } |
1095 | } | 1120 | } |
1096 | 1121 | ||
1097 | @unpublished{PaulMcKenney2005RCUSemantics | 1122 | @unpublished{PaulMcKenney2005RCUSemantics |
@@ -1103,9 +1128,9 @@ Oregon Health and Sciences University" | |||
1103 | ,note="Available: | 1128 | ,note="Available: |
1104 | \url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf} | 1129 | \url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf} |
1105 | [Viewed December 6, 2009]" | 1130 | [Viewed December 6, 2009]" |
1106 | ,annotation=" | 1131 | ,annotation={ |
1107 | Early derivation of RCU semantics. | 1132 | Early derivation of RCU semantics. |
1108 | " | 1133 | } |
1109 | } | 1134 | } |
1110 | 1135 | ||
1111 | @unpublished{PaulMcKenney2005e | 1136 | @unpublished{PaulMcKenney2005e |
@@ -1117,10 +1142,10 @@ Oregon Health and Sciences University" | |||
1117 | ,note="Available: | 1142 | ,note="Available: |
1118 | \url{http://lkml.org/lkml/2005/3/17/199} | 1143 | \url{http://lkml.org/lkml/2005/3/17/199} |
1119 | [Viewed September 5, 2005]" | 1144 | [Viewed September 5, 2005]" |
1120 | ,annotation=" | 1145 | ,annotation={ |
1121 | First posting showing how RCU can be safely adapted for | 1146 | First posting showing how RCU can be safely adapted for |
1122 | preemptable RCU read side critical sections. | 1147 | preemptable RCU read side critical sections. |
1123 | " | 1148 | } |
1124 | } | 1149 | } |
1125 | 1150 | ||
1126 | @unpublished{EsbenNeilsen2005a | 1151 | @unpublished{EsbenNeilsen2005a |
@@ -1132,12 +1157,12 @@ Oregon Health and Sciences University" | |||
1132 | ,note="Available: | 1157 | ,note="Available: |
1133 | \url{http://lkml.org/lkml/2005/3/18/122} | 1158 | \url{http://lkml.org/lkml/2005/3/18/122} |
1134 | [Viewed March 30, 2006]" | 1159 | [Viewed March 30, 2006]" |
1135 | ,annotation=" | 1160 | ,annotation={ |
1136 | Esben Neilsen suggests read-side suppression of grace-period | 1161 | Esben Neilsen suggests read-side suppression of grace-period |
1137 | processing for crude-but-workable realtime RCU. The downside | 1162 | processing for crude-but-workable realtime RCU. The downside |
1138 | is indefinite grace periods...But this is OK for experimentation | 1163 | is indefinite grace periods... But this is OK for experimentation |
1139 | and testing. | 1164 | and testing. |
1140 | " | 1165 | } |
1141 | } | 1166 | } |
1142 | 1167 | ||
1143 | @unpublished{TomHart05a | 1168 | @unpublished{TomHart05a |
@@ -1149,10 +1174,10 @@ Data Structures" | |||
1149 | ,note="Available: | 1174 | ,note="Available: |
1150 | \url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/} | 1175 | \url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/} |
1151 | [Viewed March 4, 2005]" | 1176 | [Viewed March 4, 2005]" |
1152 | ,annotation=" | 1177 | ,annotation={ |
1153 | Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly | 1178 | Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly |
1154 | workloads. ;-) | 1179 | workloads. ;-) |
1155 | " | 1180 | } |
1156 | } | 1181 | } |
1157 | 1182 | ||
1158 | @unpublished{JonCorbet2005DeprecateSyncKernel | 1183 | @unpublished{JonCorbet2005DeprecateSyncKernel |
@@ -1164,10 +1189,10 @@ Data Structures" | |||
1164 | ,note="Available: | 1189 | ,note="Available: |
1165 | \url{http://lwn.net/Articles/134484/} | 1190 | \url{http://lwn.net/Articles/134484/} |
1166 | [Viewed May 3, 2005]" | 1191 | [Viewed May 3, 2005]" |
1167 | ,annotation=" | 1192 | ,annotation={ |
1168 | Jon Corbet describes deprecation of synchronize_kernel() | 1193 | Jon Corbet describes deprecation of synchronize_kernel() |
1169 | in favor of synchronize_rcu() and synchronize_sched(). | 1194 | in favor of synchronize_rcu() and synchronize_sched(). |
1170 | " | 1195 | } |
1171 | } | 1196 | } |
1172 | 1197 | ||
1173 | @unpublished{PaulMcKenney05a | 1198 | @unpublished{PaulMcKenney05a |
@@ -1178,10 +1203,10 @@ Data Structures" | |||
1178 | ,note="Available: | 1203 | ,note="Available: |
1179 | \url{http://lkml.org/lkml/2005/5/9/185} | 1204 | \url{http://lkml.org/lkml/2005/5/9/185} |
1180 | [Viewed May 13, 2005]" | 1205 | [Viewed May 13, 2005]" |
1181 | ,annotation=" | 1206 | ,annotation={ |
1182 | First publication of working lock-based deferred free patches | 1207 | First publication of working lock-based deferred free patches |
1183 | for the CONFIG_PREEMPT_RT environment. | 1208 | for the CONFIG_PREEMPT_RT environment. |
1184 | " | 1209 | } |
1185 | } | 1210 | } |
1186 | 1211 | ||
1187 | @conference{PaulMcKenney05b | 1212 | @conference{PaulMcKenney05b |
@@ -1194,10 +1219,10 @@ Data Structures" | |||
1194 | ,note="Available: | 1219 | ,note="Available: |
1195 | \url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} | 1220 | \url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} |
1196 | [Viewed May 13, 2005]" | 1221 | [Viewed May 13, 2005]" |
1197 | ,annotation=" | 1222 | ,annotation={ |
1198 | Realtime turns into making RCU yet more realtime friendly. | 1223 | Realtime turns into making RCU yet more realtime friendly. |
1199 | http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf | 1224 | http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf |
1200 | " | 1225 | } |
1201 | } | 1226 | } |
1202 | 1227 | ||
1203 | @unpublished{PaulEMcKenneyHomePage | 1228 | @unpublished{PaulEMcKenneyHomePage |
@@ -1208,9 +1233,9 @@ Data Structures" | |||
1208 | ,note="Available: | 1233 | ,note="Available: |
1209 | \url{http://www.rdrop.com/users/paulmck/} | 1234 | \url{http://www.rdrop.com/users/paulmck/} |
1210 | [Viewed May 25, 2005]" | 1235 | [Viewed May 25, 2005]" |
1211 | ,annotation=" | 1236 | ,annotation={ |
1212 | Paul McKenney's home page. | 1237 | Paul McKenney's home page. |
1213 | " | 1238 | } |
1214 | } | 1239 | } |
1215 | 1240 | ||
1216 | @unpublished{PaulEMcKenneyRCUPage | 1241 | @unpublished{PaulEMcKenneyRCUPage |
@@ -1221,9 +1246,9 @@ Data Structures" | |||
1221 | ,note="Available: | 1246 | ,note="Available: |
1222 | \url{http://www.rdrop.com/users/paulmck/RCU} | 1247 | \url{http://www.rdrop.com/users/paulmck/RCU} |
1223 | [Viewed May 25, 2005]" | 1248 | [Viewed May 25, 2005]" |
1224 | ,annotation=" | 1249 | ,annotation={ |
1225 | Paul McKenney's RCU page. | 1250 | Paul McKenney's RCU page. |
1226 | " | 1251 | } |
1227 | } | 1252 | } |
1228 | 1253 | ||
1229 | @unpublished{JosephSeigh2005a | 1254 | @unpublished{JosephSeigh2005a |
@@ -1232,10 +1257,10 @@ Data Structures" | |||
1232 | ,month="July" | 1257 | ,month="July" |
1233 | ,year="2005" | 1258 | ,year="2005" |
1234 | ,note="Personal communication" | 1259 | ,note="Personal communication" |
1235 | ,annotation=" | 1260 | ,annotation={ |
1236 | Joe Seigh announcing his atomic-ptr-plus project. | 1261 | Joe Seigh announcing his atomic-ptr-plus project. |
1237 | http://sourceforge.net/projects/atomic-ptr-plus/ | 1262 | http://sourceforge.net/projects/atomic-ptr-plus/ |
1238 | " | 1263 | } |
1239 | } | 1264 | } |
1240 | 1265 | ||
1241 | @unpublished{JosephSeigh2005b | 1266 | @unpublished{JosephSeigh2005b |
@@ -1247,9 +1272,9 @@ Data Structures" | |||
1247 | ,note="Available: | 1272 | ,note="Available: |
1248 | \url{http://sourceforge.net/projects/atomic-ptr-plus/} | 1273 | \url{http://sourceforge.net/projects/atomic-ptr-plus/} |
1249 | [Viewed August 8, 2005]" | 1274 | [Viewed August 8, 2005]" |
1250 | ,annotation=" | 1275 | ,annotation={ |
1251 | Joe Seigh's atomic-ptr-plus project. | 1276 | Joe Seigh's atomic-ptr-plus project. |
1252 | " | 1277 | } |
1253 | } | 1278 | } |
1254 | 1279 | ||
1255 | @unpublished{PaulMcKenney2005c | 1280 | @unpublished{PaulMcKenney2005c |
@@ -1261,9 +1286,9 @@ Data Structures" | |||
1261 | ,note="Available: | 1286 | ,note="Available: |
1262 | \url{http://lkml.org/lkml/2005/8/1/155} | 1287 | \url{http://lkml.org/lkml/2005/8/1/155} |
1263 | [Viewed March 14, 2006]" | 1288 | [Viewed March 14, 2006]" |
1264 | ,annotation=" | 1289 | ,annotation={ |
1265 | First operating counter-based realtime RCU patch posted to LKML. | 1290 | First operating counter-based realtime RCU patch posted to LKML. |
1266 | " | 1291 | } |
1267 | } | 1292 | } |
1268 | 1293 | ||
1269 | @unpublished{PaulMcKenney2005d | 1294 | @unpublished{PaulMcKenney2005d |
@@ -1275,11 +1300,11 @@ Data Structures" | |||
1275 | ,note="Available: | 1300 | ,note="Available: |
1276 | \url{http://lkml.org/lkml/2005/8/8/108} | 1301 | \url{http://lkml.org/lkml/2005/8/8/108} |
1277 | [Viewed March 14, 2006]" | 1302 | [Viewed March 14, 2006]" |
1278 | ,annotation=" | 1303 | ,annotation={ |
1279 | First operating counter-based realtime RCU patch posted to LKML, | 1304 | First operating counter-based realtime RCU patch posted to LKML, |
1280 | but fixed so that various unusual combinations of configuration | 1305 | but fixed so that various unusual combinations of configuration |
1281 | parameters all function properly. | 1306 | parameters all function properly. |
1282 | " | 1307 | } |
1283 | } | 1308 | } |
1284 | 1309 | ||
1285 | @unpublished{PaulMcKenney2005rcutorture | 1310 | @unpublished{PaulMcKenney2005rcutorture |
@@ -1291,9 +1316,25 @@ Data Structures" | |||
1291 | ,note="Available: | 1316 | ,note="Available: |
1292 | \url{http://lkml.org/lkml/2005/10/1/70} | 1317 | \url{http://lkml.org/lkml/2005/10/1/70} |
1293 | [Viewed March 14, 2006]" | 1318 | [Viewed March 14, 2006]" |
1294 | ,annotation=" | 1319 | ,annotation={ |
1295 | First rcutorture patch. | 1320 | First rcutorture patch. |
1296 | " | 1321 | } |
1322 | } | ||
1323 | |||
1324 | @unpublished{DavidSMiller2006HashedLocking | ||
1325 | ,Author="David S. Miller" | ||
1326 | ,Title="Re: [{PATCH}, {RFC}] {RCU} : {OOM} avoidance and lower latency" | ||
1327 | ,month="January" | ||
1328 | ,day="6" | ||
1329 | ,year="2006" | ||
1330 | ,note="Available: | ||
1331 | \url{https://lkml.org/lkml/2006/1/7/22} | ||
1332 | [Viewed February 29, 2012]" | ||
1333 | ,annotation={ | ||
1334 | David Miller's view on hashed arrays of locks: used to really | ||
1335 | like it, but time he saw an opportunity for this technique, | ||
1336 | something else always proved superior. Partitioning or RCU. ;-) | ||
1337 | } | ||
1297 | } | 1338 | } |
1298 | 1339 | ||
1299 | @conference{ThomasEHart2006a | 1340 | @conference{ThomasEHart2006a |
@@ -1309,10 +1350,10 @@ Distributed Processing Symposium" | |||
1309 | ,note="Available: | 1350 | ,note="Available: |
1310 | \url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf} | 1351 | \url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf} |
1311 | [Viewed April 28, 2008]" | 1352 | [Viewed April 28, 2008]" |
1312 | ,annotation=" | 1353 | ,annotation={ |
1313 | Compares QSBR, HPBR, EBR, and lock-free reference counting. | 1354 | Compares QSBR, HPBR, EBR, and lock-free reference counting. |
1314 | http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz | 1355 | http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz |
1315 | " | 1356 | } |
1316 | } | 1357 | } |
1317 | 1358 | ||
1318 | @unpublished{NickPiggin2006radixtree | 1359 | @unpublished{NickPiggin2006radixtree |
@@ -1324,9 +1365,9 @@ Distributed Processing Symposium" | |||
1324 | ,note="Available: | 1365 | ,note="Available: |
1325 | \url{http://lkml.org/lkml/2006/6/20/238} | 1366 | \url{http://lkml.org/lkml/2006/6/20/238} |
1326 | [Viewed March 25, 2008]" | 1367 | [Viewed March 25, 2008]" |
1327 | ,annotation=" | 1368 | ,annotation={ |
1328 | RCU-protected radix tree. | 1369 | RCU-protected radix tree. |
1329 | " | 1370 | } |
1330 | } | 1371 | } |
1331 | 1372 | ||
1332 | @Conference{PaulEMcKenney2006b | 1373 | @Conference{PaulEMcKenney2006b |
@@ -1341,9 +1382,9 @@ Suparna Bhattacharya" | |||
1341 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} | 1382 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} |
1342 | \url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} | 1383 | \url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} |
1343 | [Viewed January 1, 2007]" | 1384 | [Viewed January 1, 2007]" |
1344 | ,annotation=" | 1385 | ,annotation={ |
1345 | Described how to improve the -rt implementation of realtime RCU. | 1386 | Described how to improve the -rt implementation of realtime RCU. |
1346 | " | 1387 | } |
1347 | } | 1388 | } |
1348 | 1389 | ||
1349 | @unpublished{WikipediaRCU | 1390 | @unpublished{WikipediaRCU |
@@ -1354,12 +1395,11 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" | |||
1354 | ,month="July" | 1395 | ,month="July" |
1355 | ,day="8" | 1396 | ,day="8" |
1356 | ,year="2006" | 1397 | ,year="2006" |
1357 | ,note="Available: | 1398 | ,note="\url{http://en.wikipedia.org/wiki/Read-copy-update}" |
1358 | \url{http://en.wikipedia.org/wiki/Read-copy-update} | 1399 | ,annotation={ |
1359 | [Viewed August 21, 2006]" | ||
1360 | ,annotation=" | ||
1361 | Wikipedia RCU page as of July 8 2006. | 1400 | Wikipedia RCU page as of July 8 2006. |
1362 | " | 1401 | [Viewed August 21, 2006] |
1402 | } | ||
1363 | } | 1403 | } |
1364 | 1404 | ||
1365 | @Conference{NickPiggin2006LocklessPageCache | 1405 | @Conference{NickPiggin2006LocklessPageCache |
@@ -1372,9 +1412,9 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" | |||
1372 | ,note="Available: | 1412 | ,note="Available: |
1373 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} | 1413 | \url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} |
1374 | [Viewed January 11, 2009]" | 1414 | [Viewed January 11, 2009]" |
1375 | ,annotation=" | 1415 | ,annotation={ |
1376 | Uses RCU-protected radix tree for a lockless page cache. | 1416 | Uses RCU-protected radix tree for a lockless page cache. |
1377 | " | 1417 | } |
1378 | } | 1418 | } |
1379 | 1419 | ||
1380 | @unpublished{PaulEMcKenney2006c | 1420 | @unpublished{PaulEMcKenney2006c |
@@ -1388,9 +1428,9 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" | |||
1388 | Revised: | 1428 | Revised: |
1389 | \url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} | 1429 | \url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} |
1390 | [Viewed August 21, 2006]" | 1430 | [Viewed August 21, 2006]" |
1391 | ,annotation=" | 1431 | ,annotation={ |
1392 | LWN article introducing SRCU. | 1432 | LWN article introducing SRCU. |
1393 | " | 1433 | } |
1394 | } | 1434 | } |
1395 | 1435 | ||
1396 | @unpublished{RobertOlsson2006a | 1436 | @unpublished{RobertOlsson2006a |
@@ -1399,12 +1439,11 @@ Revised: | |||
1399 | ,month="August" | 1439 | ,month="August" |
1400 | ,day="18" | 1440 | ,day="18" |
1401 | ,year="2006" | 1441 | ,year="2006" |
1402 | ,note="Available: | 1442 | ,note="\url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf}" |
1403 | \url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf} | 1443 | ,annotation={ |
1404 | [Viewed March 4, 2011]" | ||
1405 | ,annotation=" | ||
1406 | RCU-protected dynamic trie-hash combination. | 1444 | RCU-protected dynamic trie-hash combination. |
1407 | " | 1445 | [Viewed March 4, 2011] |
1446 | } | ||
1408 | } | 1447 | } |
1409 | 1448 | ||
1410 | @unpublished{ChristophHellwig2006RCU2SRCU | 1449 | @unpublished{ChristophHellwig2006RCU2SRCU |
@@ -1426,10 +1465,10 @@ Revised: | |||
1426 | ,note="Available: | 1465 | ,note="Available: |
1427 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html} | 1466 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html} |
1428 | [Viewed January 14, 2007]" | 1467 | [Viewed January 14, 2007]" |
1429 | ,annotation=" | 1468 | ,annotation={ |
1430 | Paul McKenney's RCU page showing graphs plotting Linux-kernel | 1469 | Paul McKenney's RCU page showing graphs plotting Linux-kernel |
1431 | usage of RCU. | 1470 | usage of RCU. |
1432 | " | 1471 | } |
1433 | } | 1472 | } |
1434 | 1473 | ||
1435 | @unpublished{PaulEMcKenneyRCUusageRawDataPage | 1474 | @unpublished{PaulEMcKenneyRCUusageRawDataPage |
@@ -1440,10 +1479,10 @@ Revised: | |||
1440 | ,note="Available: | 1479 | ,note="Available: |
1441 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html} | 1480 | \url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html} |
1442 | [Viewed January 14, 2007]" | 1481 | [Viewed January 14, 2007]" |
1443 | ,annotation=" | 1482 | ,annotation={ |
1444 | Paul McKenney's RCU page showing Linux usage of RCU in tabular | 1483 | Paul McKenney's RCU page showing Linux usage of RCU in tabular |
1445 | form, with links to corresponding cscope databases. | 1484 | form, with links to corresponding cscope databases. |
1446 | " | 1485 | } |
1447 | } | 1486 | } |
1448 | 1487 | ||
1449 | @unpublished{GauthamShenoy2006RCUrwlock | 1488 | @unpublished{GauthamShenoy2006RCUrwlock |
@@ -1455,13 +1494,13 @@ Revised: | |||
1455 | ,note="Available: | 1494 | ,note="Available: |
1456 | \url{http://lkml.org/lkml/2006/10/26/73} | 1495 | \url{http://lkml.org/lkml/2006/10/26/73} |
1457 | [Viewed January 26, 2009]" | 1496 | [Viewed January 26, 2009]" |
1458 | ,annotation=" | 1497 | ,annotation={ |
1459 | RCU-based reader-writer lock that allows readers to proceed with | 1498 | RCU-based reader-writer lock that allows readers to proceed with |
1460 | no memory barriers or atomic instruction in absence of writers. | 1499 | no memory barriers or atomic instruction in absence of writers. |
1461 | If writer do show up, readers must of course wait as required by | 1500 | If writer do show up, readers must of course wait as required by |
1462 | the semantics of reader-writer locking. This is a recursive | 1501 | the semantics of reader-writer locking. This is a recursive |
1463 | lock. | 1502 | lock. |
1464 | " | 1503 | } |
1465 | } | 1504 | } |
1466 | 1505 | ||
1467 | @unpublished{JensAxboe2006SlowSRCU | 1506 | @unpublished{JensAxboe2006SlowSRCU |
@@ -1474,11 +1513,11 @@ Revised: | |||
1474 | ,note="Available: | 1513 | ,note="Available: |
1475 | \url{http://lkml.org/lkml/2006/11/17/56} | 1514 | \url{http://lkml.org/lkml/2006/11/17/56} |
1476 | [Viewed May 28, 2007]" | 1515 | [Viewed May 28, 2007]" |
1477 | ,annotation=" | 1516 | ,annotation={ |
1478 | SRCU's grace periods are too slow for Jens, even after a | 1517 | SRCU's grace periods are too slow for Jens, even after a |
1479 | factor-of-three speedup. | 1518 | factor-of-three speedup. |
1480 | Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. | 1519 | Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. |
1481 | " | 1520 | } |
1482 | } | 1521 | } |
1483 | 1522 | ||
1484 | @unpublished{OlegNesterov2006QRCU | 1523 | @unpublished{OlegNesterov2006QRCU |
@@ -1491,10 +1530,10 @@ Revised: | |||
1491 | ,note="Available: | 1530 | ,note="Available: |
1492 | \url{http://lkml.org/lkml/2006/11/19/69} | 1531 | \url{http://lkml.org/lkml/2006/11/19/69} |
1493 | [Viewed May 28, 2007]" | 1532 | [Viewed May 28, 2007]" |
1494 | ,annotation=" | 1533 | ,annotation={ |
1495 | First cut of QRCU. Expanded/corrected versions followed. | 1534 | First cut of QRCU. Expanded/corrected versions followed. |
1496 | Used to be OlegNesterov2007QRCU, now time-corrected. | 1535 | Used to be OlegNesterov2007QRCU, now time-corrected. |
1497 | " | 1536 | } |
1498 | } | 1537 | } |
1499 | 1538 | ||
1500 | @unpublished{OlegNesterov2006aQRCU | 1539 | @unpublished{OlegNesterov2006aQRCU |
@@ -1506,10 +1545,10 @@ Revised: | |||
1506 | ,note="Available: | 1545 | ,note="Available: |
1507 | \url{http://lkml.org/lkml/2006/11/29/330} | 1546 | \url{http://lkml.org/lkml/2006/11/29/330} |
1508 | [Viewed November 26, 2008]" | 1547 | [Viewed November 26, 2008]" |
1509 | ,annotation=" | 1548 | ,annotation={ |
1510 | Expanded/corrected version of QRCU. | 1549 | Expanded/corrected version of QRCU. |
1511 | Used to be OlegNesterov2007aQRCU, now time-corrected. | 1550 | Used to be OlegNesterov2007aQRCU, now time-corrected. |
1512 | " | 1551 | } |
1513 | } | 1552 | } |
1514 | 1553 | ||
1515 | @unpublished{EvgeniyPolyakov2006RCUslowdown | 1554 | @unpublished{EvgeniyPolyakov2006RCUslowdown |
@@ -1521,10 +1560,10 @@ Revised: | |||
1521 | ,note="Available: | 1560 | ,note="Available: |
1522 | \url{http://www.ioremap.net/node/41} | 1561 | \url{http://www.ioremap.net/node/41} |
1523 | [Viewed October 28, 2008]" | 1562 | [Viewed October 28, 2008]" |
1524 | ,annotation=" | 1563 | ,annotation={ |
1525 | Using RCU as a pure delay leads to a 2.5x slowdown in skbs in | 1564 | Using RCU as a pure delay leads to a 2.5x slowdown in skbs in |
1526 | the Linux kernel. | 1565 | the Linux kernel. |
1527 | " | 1566 | } |
1528 | } | 1567 | } |
1529 | 1568 | ||
1530 | @inproceedings{ChrisMatthews2006ClusteredObjectsRCU | 1569 | @inproceedings{ChrisMatthews2006ClusteredObjectsRCU |
@@ -1541,7 +1580,8 @@ Revised: | |||
1541 | ,annotation={ | 1580 | ,annotation={ |
1542 | Uses K42's RCU-like functionality to manage clustered-object | 1581 | Uses K42's RCU-like functionality to manage clustered-object |
1543 | lifetimes. | 1582 | lifetimes. |
1544 | }} | 1583 | } |
1584 | } | ||
1545 | 1585 | ||
1546 | @article{DilmaDaSilva2006K42 | 1586 | @article{DilmaDaSilva2006K42 |
1547 | ,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew} | 1587 | ,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew} |
@@ -1557,7 +1597,8 @@ Revised: | |||
1557 | ,address = {New York, NY, USA} | 1597 | ,address = {New York, NY, USA} |
1558 | ,annotation={ | 1598 | ,annotation={ |
1559 | Describes relationship of K42 generations to RCU. | 1599 | Describes relationship of K42 generations to RCU. |
1560 | }} | 1600 | } |
1601 | } | ||
1561 | 1602 | ||
1562 | # CoreyMinyard2007list_splice_rcu | 1603 | # CoreyMinyard2007list_splice_rcu |
1563 | @unpublished{CoreyMinyard2007list:splice:rcu | 1604 | @unpublished{CoreyMinyard2007list:splice:rcu |
@@ -1569,9 +1610,9 @@ Revised: | |||
1569 | ,note="Available: | 1610 | ,note="Available: |
1570 | \url{http://lkml.org/lkml/2007/1/3/112} | 1611 | \url{http://lkml.org/lkml/2007/1/3/112} |
1571 | [Viewed May 28, 2007]" | 1612 | [Viewed May 28, 2007]" |
1572 | ,annotation=" | 1613 | ,annotation={ |
1573 | Patch for list_splice_rcu(). | 1614 | Patch for list_splice_rcu(). |
1574 | " | 1615 | } |
1575 | } | 1616 | } |
1576 | 1617 | ||
1577 | @unpublished{PaulEMcKenney2007rcubarrier | 1618 | @unpublished{PaulEMcKenney2007rcubarrier |
@@ -1583,9 +1624,9 @@ Revised: | |||
1583 | ,note="Available: | 1624 | ,note="Available: |
1584 | \url{http://lwn.net/Articles/217484/} | 1625 | \url{http://lwn.net/Articles/217484/} |
1585 | [Viewed November 22, 2007]" | 1626 | [Viewed November 22, 2007]" |
1586 | ,annotation=" | 1627 | ,annotation={ |
1587 | LWN article introducing the rcu_barrier() primitive. | 1628 | LWN article introducing the rcu_barrier() primitive. |
1588 | " | 1629 | } |
1589 | } | 1630 | } |
1590 | 1631 | ||
1591 | @unpublished{PeterZijlstra2007SyncBarrier | 1632 | @unpublished{PeterZijlstra2007SyncBarrier |
@@ -1597,10 +1638,10 @@ Revised: | |||
1597 | ,note="Available: | 1638 | ,note="Available: |
1598 | \url{http://lkml.org/lkml/2007/1/28/34} | 1639 | \url{http://lkml.org/lkml/2007/1/28/34} |
1599 | [Viewed March 27, 2008]" | 1640 | [Viewed March 27, 2008]" |
1600 | ,annotation=" | 1641 | ,annotation={ |
1601 | RCU-like implementation for frequent updaters and rare readers(!). | 1642 | RCU-like implementation for frequent updaters and rare readers(!). |
1602 | Subsumed into QRCU. Maybe... | 1643 | Subsumed into QRCU. Maybe... |
1603 | " | 1644 | } |
1604 | } | 1645 | } |
1605 | 1646 | ||
1606 | @unpublished{PaulEMcKenney2007BoostRCU | 1647 | @unpublished{PaulEMcKenney2007BoostRCU |
@@ -1609,14 +1650,13 @@ Revised: | |||
1609 | ,month="February" | 1650 | ,month="February" |
1610 | ,day="5" | 1651 | ,day="5" |
1611 | ,year="2007" | 1652 | ,year="2007" |
1612 | ,note="Available: | 1653 | ,note="\url{http://lwn.net/Articles/220677/}" |
1613 | \url{http://lwn.net/Articles/220677/} | 1654 | ,annotation={ |
1614 | Revised: | ||
1615 | \url{http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf} | ||
1616 | [Viewed September 7, 2007]" | ||
1617 | ,annotation=" | ||
1618 | LWN article introducing RCU priority boosting. | 1655 | LWN article introducing RCU priority boosting. |
1619 | " | 1656 | Revised: |
1657 | http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf | ||
1658 | [Viewed September 7, 2007] | ||
1659 | } | ||
1620 | } | 1660 | } |
1621 | 1661 | ||
1622 | @unpublished{PaulMcKenney2007QRCUpatch | 1662 | @unpublished{PaulMcKenney2007QRCUpatch |
@@ -1628,9 +1668,9 @@ Revised: | |||
1628 | ,note="Available: | 1668 | ,note="Available: |
1629 | \url{http://lkml.org/lkml/2007/2/25/18} | 1669 | \url{http://lkml.org/lkml/2007/2/25/18} |
1630 | [Viewed March 27, 2008]" | 1670 | [Viewed March 27, 2008]" |
1631 | ,annotation=" | 1671 | ,annotation={ |
1632 | Patch for QRCU supplying lock-free fast path. | 1672 | Patch for QRCU supplying lock-free fast path. |
1633 | " | 1673 | } |
1634 | } | 1674 | } |
1635 | 1675 | ||
1636 | @article{JonathanAppavoo2007K42RCU | 1676 | @article{JonathanAppavoo2007K42RCU |
@@ -1647,7 +1687,8 @@ Revised: | |||
1647 | ,address = {New York, NY, USA} | 1687 | ,address = {New York, NY, USA} |
1648 | ,annotation={ | 1688 | ,annotation={ |
1649 | Role of RCU in K42. | 1689 | Role of RCU in K42. |
1650 | }} | 1690 | } |
1691 | } | ||
1651 | 1692 | ||
1652 | @conference{RobertOlsson2007Trash | 1693 | @conference{RobertOlsson2007Trash |
1653 | ,Author="Robert Olsson and Stefan Nilsson" | 1694 | ,Author="Robert Olsson and Stefan Nilsson" |
@@ -1658,9 +1699,9 @@ Revised: | |||
1658 | ,note="Available: | 1699 | ,note="Available: |
1659 | \url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239} | 1700 | \url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239} |
1660 | [Viewed October 1, 2010]" | 1701 | [Viewed October 1, 2010]" |
1661 | ,annotation=" | 1702 | ,annotation={ |
1662 | RCU-protected dynamic trie-hash combination. | 1703 | RCU-protected dynamic trie-hash combination. |
1663 | " | 1704 | } |
1664 | } | 1705 | } |
1665 | 1706 | ||
1666 | @conference{PeterZijlstra2007ConcurrentPagecacheRCU | 1707 | @conference{PeterZijlstra2007ConcurrentPagecacheRCU |
@@ -1673,10 +1714,10 @@ Revised: | |||
1673 | ,note="Available: | 1714 | ,note="Available: |
1674 | \url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf} | 1715 | \url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf} |
1675 | [Viewed April 14, 2008]" | 1716 | [Viewed April 14, 2008]" |
1676 | ,annotation=" | 1717 | ,annotation={ |
1677 | Page-cache modifications permitting RCU readers and concurrent | 1718 | Page-cache modifications permitting RCU readers and concurrent |
1678 | updates. | 1719 | updates. |
1679 | " | 1720 | } |
1680 | } | 1721 | } |
1681 | 1722 | ||
1682 | @unpublished{PaulEMcKenney2007whatisRCU | 1723 | @unpublished{PaulEMcKenney2007whatisRCU |
@@ -1701,11 +1742,11 @@ Revised: | |||
1701 | ,note="Available: | 1742 | ,note="Available: |
1702 | \url{http://lwn.net/Articles/243851/} | 1743 | \url{http://lwn.net/Articles/243851/} |
1703 | [Viewed September 8, 2007]" | 1744 | [Viewed September 8, 2007]" |
1704 | ,annotation=" | 1745 | ,annotation={ |
1705 | LWN article describing Promela and spin, and also using Oleg | 1746 | LWN article describing Promela and spin, and also using Oleg |
1706 | Nesterov's QRCU as an example (with Paul McKenney's fastpath). | 1747 | Nesterov's QRCU as an example (with Paul McKenney's fastpath). |
1707 | Merged patch at: http://lkml.org/lkml/2007/2/25/18 | 1748 | Merged patch at: http://lkml.org/lkml/2007/2/25/18 |
1708 | " | 1749 | } |
1709 | } | 1750 | } |
1710 | 1751 | ||
1711 | @unpublished{PaulEMcKenney2007WG21DDOatomics | 1752 | @unpublished{PaulEMcKenney2007WG21DDOatomics |
@@ -1714,12 +1755,12 @@ Revised: | |||
1714 | ,month="August" | 1755 | ,month="August" |
1715 | ,day="3" | 1756 | ,day="3" |
1716 | ,year="2007" | 1757 | ,year="2007" |
1717 | ,note="Preprint: | 1758 | ,note="Available: |
1718 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm} | 1759 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm} |
1719 | [Viewed December 7, 2009]" | 1760 | [Viewed December 7, 2009]" |
1720 | ,annotation=" | 1761 | ,annotation={ |
1721 | RCU for C++, parts 1 and 2. | 1762 | RCU for C++, parts 1 and 2. |
1722 | " | 1763 | } |
1723 | } | 1764 | } |
1724 | 1765 | ||
1725 | @unpublished{PaulEMcKenney2007WG21DDOannotation | 1766 | @unpublished{PaulEMcKenney2007WG21DDOannotation |
@@ -1728,12 +1769,12 @@ Revised: | |||
1728 | ,month="September" | 1769 | ,month="September" |
1729 | ,day="18" | 1770 | ,day="18" |
1730 | ,year="2008" | 1771 | ,year="2008" |
1731 | ,note="Preprint: | 1772 | ,note="Available: |
1732 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm} | 1773 | \url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm} |
1733 | [Viewed December 7, 2009]" | 1774 | [Viewed December 7, 2009]" |
1734 | ,annotation=" | 1775 | ,annotation={ |
1735 | RCU for C++, part 2, updated many times. | 1776 | RCU for C++, part 2, updated many times. |
1736 | " | 1777 | } |
1737 | } | 1778 | } |
1738 | 1779 | ||
1739 | @unpublished{PaulEMcKenney2007PreemptibleRCUPatch | 1780 | @unpublished{PaulEMcKenney2007PreemptibleRCUPatch |
@@ -1745,10 +1786,10 @@ Revised: | |||
1745 | ,note="Available: | 1786 | ,note="Available: |
1746 | \url{http://lkml.org/lkml/2007/9/10/213} | 1787 | \url{http://lkml.org/lkml/2007/9/10/213} |
1747 | [Viewed October 25, 2007]" | 1788 | [Viewed October 25, 2007]" |
1748 | ,annotation=" | 1789 | ,annotation={ |
1749 | Final patch for preemptable RCU to -rt. (Later patches were | 1790 | Final patch for preemptable RCU to -rt. (Later patches were |
1750 | to mainline, eventually incorporated.) | 1791 | to mainline, eventually incorporated.) |
1751 | " | 1792 | } |
1752 | } | 1793 | } |
1753 | 1794 | ||
1754 | @unpublished{PaulEMcKenney2007PreemptibleRCU | 1795 | @unpublished{PaulEMcKenney2007PreemptibleRCU |
@@ -1760,9 +1801,9 @@ Revised: | |||
1760 | ,note="Available: | 1801 | ,note="Available: |
1761 | \url{http://lwn.net/Articles/253651/} | 1802 | \url{http://lwn.net/Articles/253651/} |
1762 | [Viewed October 25, 2007]" | 1803 | [Viewed October 25, 2007]" |
1763 | ,annotation=" | 1804 | ,annotation={ |
1764 | LWN article describing the design of preemptible RCU. | 1805 | LWN article describing the design of preemptible RCU. |
1765 | " | 1806 | } |
1766 | } | 1807 | } |
1767 | 1808 | ||
1768 | @article{ThomasEHart2007a | 1809 | @article{ThomasEHart2007a |
@@ -1783,6 +1824,7 @@ Revised: | |||
1783 | } | 1824 | } |
1784 | } | 1825 | } |
1785 | 1826 | ||
1827 | # MathieuDesnoyers2007call_rcu_schedNeeded | ||
1786 | @unpublished{MathieuDesnoyers2007call:rcu:schedNeeded | 1828 | @unpublished{MathieuDesnoyers2007call:rcu:schedNeeded |
1787 | ,Author="Mathieu Desnoyers" | 1829 | ,Author="Mathieu Desnoyers" |
1788 | ,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes" | 1830 | ,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes" |
@@ -1792,9 +1834,9 @@ Revised: | |||
1792 | ,note="Available: | 1834 | ,note="Available: |
1793 | \url{http://lkml.org/lkml/2007/12/20/244} | 1835 | \url{http://lkml.org/lkml/2007/12/20/244} |
1794 | [Viewed March 27, 2008]" | 1836 | [Viewed March 27, 2008]" |
1795 | ,annotation=" | 1837 | ,annotation={ |
1796 | Request for call_rcu_sched() and rcu_barrier_sched(). | 1838 | Request for call_rcu_sched() and rcu_barrier_sched(). |
1797 | " | 1839 | } |
1798 | } | 1840 | } |
1799 | 1841 | ||
1800 | 1842 | ||
@@ -1815,11 +1857,11 @@ Revised: | |||
1815 | ,note="Available: | 1857 | ,note="Available: |
1816 | \url{http://lwn.net/Articles/262464/} | 1858 | \url{http://lwn.net/Articles/262464/} |
1817 | [Viewed December 27, 2007]" | 1859 | [Viewed December 27, 2007]" |
1818 | ,annotation=" | 1860 | ,annotation={ |
1819 | Lays out the three basic components of RCU: (1) publish-subscribe, | 1861 | Lays out the three basic components of RCU: (1) publish-subscribe, |
1820 | (2) wait for pre-existing readers to complete, and (2) maintain | 1862 | (2) wait for pre-existing readers to complete, and (2) maintain |
1821 | multiple versions. | 1863 | multiple versions. |
1822 | " | 1864 | } |
1823 | } | 1865 | } |
1824 | 1866 | ||
1825 | @unpublished{PaulEMcKenney2008WhatIsRCUUsage | 1867 | @unpublished{PaulEMcKenney2008WhatIsRCUUsage |
@@ -1831,7 +1873,7 @@ Revised: | |||
1831 | ,note="Available: | 1873 | ,note="Available: |
1832 | \url{http://lwn.net/Articles/263130/} | 1874 | \url{http://lwn.net/Articles/263130/} |
1833 | [Viewed January 4, 2008]" | 1875 | [Viewed January 4, 2008]" |
1834 | ,annotation=" | 1876 | ,annotation={ |
1835 | Lays out six uses of RCU: | 1877 | Lays out six uses of RCU: |
1836 | 1. RCU is a Reader-Writer Lock Replacement | 1878 | 1. RCU is a Reader-Writer Lock Replacement |
1837 | 2. RCU is a Restricted Reference-Counting Mechanism | 1879 | 2. RCU is a Restricted Reference-Counting Mechanism |
@@ -1839,7 +1881,7 @@ Revised: | |||
1839 | 4. RCU is a Poor Man's Garbage Collector | 1881 | 4. RCU is a Poor Man's Garbage Collector |
1840 | 5. RCU is a Way of Providing Existence Guarantees | 1882 | 5. RCU is a Way of Providing Existence Guarantees |
1841 | 6. RCU is a Way of Waiting for Things to Finish | 1883 | 6. RCU is a Way of Waiting for Things to Finish |
1842 | " | 1884 | } |
1843 | } | 1885 | } |
1844 | 1886 | ||
1845 | @unpublished{PaulEMcKenney2008WhatIsRCUAPI | 1887 | @unpublished{PaulEMcKenney2008WhatIsRCUAPI |
@@ -1851,10 +1893,10 @@ Revised: | |||
1851 | ,note="Available: | 1893 | ,note="Available: |
1852 | \url{http://lwn.net/Articles/264090/} | 1894 | \url{http://lwn.net/Articles/264090/} |
1853 | [Viewed January 10, 2008]" | 1895 | [Viewed January 10, 2008]" |
1854 | ,annotation=" | 1896 | ,annotation={ |
1855 | Gives an overview of the Linux-kernel RCU API and a brief annotated RCU | 1897 | Gives an overview of the Linux-kernel RCU API and a brief annotated RCU |
1856 | bibliography. | 1898 | bibliography. |
1857 | " | 1899 | } |
1858 | } | 1900 | } |
1859 | 1901 | ||
1860 | # | 1902 | # |
@@ -1872,10 +1914,10 @@ Revised: | |||
1872 | ,note="Available: | 1914 | ,note="Available: |
1873 | \url{http://lkml.org/lkml/2008/1/29/208} | 1915 | \url{http://lkml.org/lkml/2008/1/29/208} |
1874 | [Viewed March 27, 2008]" | 1916 | [Viewed March 27, 2008]" |
1875 | ,annotation=" | 1917 | ,annotation={ |
1876 | Patch that prevents preemptible RCU from unnecessarily waking | 1918 | Patch that prevents preemptible RCU from unnecessarily waking |
1877 | up dynticks-idle CPUs. | 1919 | up dynticks-idle CPUs. |
1878 | " | 1920 | } |
1879 | } | 1921 | } |
1880 | 1922 | ||
1881 | @unpublished{PaulEMcKenney2008LKMLDependencyOrdering | 1923 | @unpublished{PaulEMcKenney2008LKMLDependencyOrdering |
@@ -1887,9 +1929,9 @@ Revised: | |||
1887 | ,note="Available: | 1929 | ,note="Available: |
1888 | \url{http://lkml.org/lkml/2008/2/2/255} | 1930 | \url{http://lkml.org/lkml/2008/2/2/255} |
1889 | [Viewed October 18, 2008]" | 1931 | [Viewed October 18, 2008]" |
1890 | ,annotation=" | 1932 | ,annotation={ |
1891 | Explanation of compilers violating dependency ordering. | 1933 | Explanation of compilers violating dependency ordering. |
1892 | " | 1934 | } |
1893 | } | 1935 | } |
1894 | 1936 | ||
1895 | @Conference{PaulEMcKenney2008Beijing | 1937 | @Conference{PaulEMcKenney2008Beijing |
@@ -1916,24 +1958,26 @@ lot of {Linux} into your technology!!!" | |||
1916 | ,note="Available: | 1958 | ,note="Available: |
1917 | \url{http://lwn.net/Articles/279077/} | 1959 | \url{http://lwn.net/Articles/279077/} |
1918 | [Viewed April 24, 2008]" | 1960 | [Viewed April 24, 2008]" |
1919 | ,annotation=" | 1961 | ,annotation={ |
1920 | Describes use of Promela and Spin to validate (and fix!) the | 1962 | Describes use of Promela and Spin to validate (and fix!) the |
1921 | dynticks/RCU interface. | 1963 | dynticks/RCU interface. |
1922 | " | 1964 | } |
1923 | } | 1965 | } |
1924 | 1966 | ||
1925 | @article{DinakarGuniguntala2008IBMSysJ | 1967 | @article{DinakarGuniguntala2008IBMSysJ |
1926 | ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" | 1968 | ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" |
1927 | ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" | 1969 | ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" |
1928 | ,Year="2008" | 1970 | ,Year="2008" |
1929 | ,Month="April-June" | 1971 | ,Month="May" |
1930 | ,journal="IBM Systems Journal" | 1972 | ,journal="IBM Systems Journal" |
1931 | ,volume="47" | 1973 | ,volume="47" |
1932 | ,number="2" | 1974 | ,number="2" |
1933 | ,pages="221-236" | 1975 | ,pages="221-236" |
1934 | ,annotation=" | 1976 | ,annotation={ |
1935 | RCU, realtime RCU, sleepable RCU, performance. | 1977 | RCU, realtime RCU, sleepable RCU, performance. |
1936 | " | 1978 | http://www.research.ibm.com/journal/sj/472/guniguntala.pdf |
1979 | [Viewed April 24, 2008] | ||
1980 | } | ||
1937 | } | 1981 | } |
1938 | 1982 | ||
1939 | @unpublished{LaiJiangshan2008NewClassicAlgorithm | 1983 | @unpublished{LaiJiangshan2008NewClassicAlgorithm |
@@ -1945,11 +1989,11 @@ lot of {Linux} into your technology!!!" | |||
1945 | ,note="Available: | 1989 | ,note="Available: |
1946 | \url{http://lkml.org/lkml/2008/6/2/539} | 1990 | \url{http://lkml.org/lkml/2008/6/2/539} |
1947 | [Viewed December 10, 2008]" | 1991 | [Viewed December 10, 2008]" |
1948 | ,annotation=" | 1992 | ,annotation={ |
1949 | Updated RCU classic algorithm. Introduced multi-tailed list | 1993 | Updated RCU classic algorithm. Introduced multi-tailed list |
1950 | for RCU callbacks and also pulling common code into | 1994 | for RCU callbacks and also pulling common code into |
1951 | __call_rcu(). | 1995 | __call_rcu(). |
1952 | " | 1996 | } |
1953 | } | 1997 | } |
1954 | 1998 | ||
1955 | @article{PaulEMcKenney2008RCUOSR | 1999 | @article{PaulEMcKenney2008RCUOSR |
@@ -1966,6 +2010,7 @@ lot of {Linux} into your technology!!!" | |||
1966 | ,address="New York, NY, USA" | 2010 | ,address="New York, NY, USA" |
1967 | ,annotation={ | 2011 | ,annotation={ |
1968 | Linux changed RCU to a far greater degree than RCU has changed Linux. | 2012 | Linux changed RCU to a far greater degree than RCU has changed Linux. |
2013 | http://portal.acm.org/citation.cfm?doid=1400097.1400099 | ||
1969 | } | 2014 | } |
1970 | } | 2015 | } |
1971 | 2016 | ||
@@ -1978,10 +2023,10 @@ lot of {Linux} into your technology!!!" | |||
1978 | ,note="Available: | 2023 | ,note="Available: |
1979 | \url{http://lkml.org/lkml/2008/8/21/336} | 2024 | \url{http://lkml.org/lkml/2008/8/21/336} |
1980 | [Viewed December 8, 2008]" | 2025 | [Viewed December 8, 2008]" |
1981 | ,annotation=" | 2026 | ,annotation={ |
1982 | State-based RCU. One key thing that this patch does is to | 2027 | State-based RCU. One key thing that this patch does is to |
1983 | separate the dynticks handling of NMIs and IRQs. | 2028 | separate the dynticks handling of NMIs and IRQs. |
1984 | " | 2029 | } |
1985 | } | 2030 | } |
1986 | 2031 | ||
1987 | @unpublished{ManfredSpraul2008dyntickIRQNMI | 2032 | @unpublished{ManfredSpraul2008dyntickIRQNMI |
@@ -1993,12 +2038,13 @@ lot of {Linux} into your technology!!!" | |||
1993 | ,note="Available: | 2038 | ,note="Available: |
1994 | \url{http://lkml.org/lkml/2008/9/6/86} | 2039 | \url{http://lkml.org/lkml/2008/9/6/86} |
1995 | [Viewed December 8, 2008]" | 2040 | [Viewed December 8, 2008]" |
1996 | ,annotation=" | 2041 | ,annotation={ |
1997 | Manfred notes a fix required to my attempt to separate irq | 2042 | Manfred notes a fix required to my attempt to separate irq |
1998 | and NMI processing for hierarchical RCU's dynticks interface. | 2043 | and NMI processing for hierarchical RCU's dynticks interface. |
1999 | " | 2044 | } |
2000 | } | 2045 | } |
2001 | 2046 | ||
2047 | # Was PaulEMcKenney2011cyclicRCU | ||
2002 | @techreport{PaulEMcKenney2008cyclicRCU | 2048 | @techreport{PaulEMcKenney2008cyclicRCU |
2003 | ,author="Paul E. McKenney" | 2049 | ,author="Paul E. McKenney" |
2004 | ,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update" | 2050 | ,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update" |
@@ -2008,11 +2054,11 @@ lot of {Linux} into your technology!!!" | |||
2008 | ,number="US Patent 7,426,511" | 2054 | ,number="US Patent 7,426,511" |
2009 | ,month="September" | 2055 | ,month="September" |
2010 | ,pages="23" | 2056 | ,pages="23" |
2011 | ,annotation=" | 2057 | ,annotation={ |
2012 | Maintains an additional level of indirection to allow | 2058 | Maintains an additional level of indirection to allow |
2013 | readers to confine themselves to the desired snapshot of the | 2059 | readers to confine themselves to the desired snapshot of the |
2014 | data structure. Only permits one update at a time. | 2060 | data structure. Only permits one update at a time. |
2015 | " | 2061 | } |
2016 | } | 2062 | } |
2017 | 2063 | ||
2018 | @unpublished{PaulEMcKenney2008HierarchicalRCU | 2064 | @unpublished{PaulEMcKenney2008HierarchicalRCU |
@@ -2021,13 +2067,12 @@ lot of {Linux} into your technology!!!" | |||
2021 | ,month="November" | 2067 | ,month="November" |
2022 | ,day="3" | 2068 | ,day="3" |
2023 | ,year="2008" | 2069 | ,year="2008" |
2024 | ,note="Available: | 2070 | ,note="\url{http://lwn.net/Articles/305782/}" |
2025 | \url{http://lwn.net/Articles/305782/} | 2071 | ,annotation={ |
2026 | [Viewed November 6, 2008]" | ||
2027 | ,annotation=" | ||
2028 | RCU with combining-tree-based grace-period detection, | 2072 | RCU with combining-tree-based grace-period detection, |
2029 | permitting it to handle thousands of CPUs. | 2073 | permitting it to handle thousands of CPUs. |
2030 | " | 2074 | [Viewed November 6, 2008] |
2075 | } | ||
2031 | } | 2076 | } |
2032 | 2077 | ||
2033 | @unpublished{PaulEMcKenney2009BloatwatchRCU | 2078 | @unpublished{PaulEMcKenney2009BloatwatchRCU |
@@ -2039,10 +2084,10 @@ lot of {Linux} into your technology!!!" | |||
2039 | ,note="Available: | 2084 | ,note="Available: |
2040 | \url{http://lkml.org/lkml/2009/1/14/449} | 2085 | \url{http://lkml.org/lkml/2009/1/14/449} |
2041 | [Viewed January 15, 2009]" | 2086 | [Viewed January 15, 2009]" |
2042 | ,annotation=" | 2087 | ,annotation={ |
2043 | Small-footprint implementation of RCU for uniprocessor | 2088 | Small-footprint implementation of RCU for uniprocessor |
2044 | embedded applications -- and also for exposition purposes. | 2089 | embedded applications -- and also for exposition purposes. |
2045 | " | 2090 | } |
2046 | } | 2091 | } |
2047 | 2092 | ||
2048 | @conference{PaulEMcKenney2009MaliciousURCU | 2093 | @conference{PaulEMcKenney2009MaliciousURCU |
@@ -2055,9 +2100,9 @@ lot of {Linux} into your technology!!!" | |||
2055 | ,note="Available: | 2100 | ,note="Available: |
2056 | \url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf} | 2101 | \url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf} |
2057 | [Viewed February 2, 2009]" | 2102 | [Viewed February 2, 2009]" |
2058 | ,annotation=" | 2103 | ,annotation={ |
2059 | Realtime RCU and torture-testing RCU uses. | 2104 | Realtime RCU and torture-testing RCU uses. |
2060 | " | 2105 | } |
2061 | } | 2106 | } |
2062 | 2107 | ||
2063 | @unpublished{MathieuDesnoyers2009URCU | 2108 | @unpublished{MathieuDesnoyers2009URCU |
@@ -2066,16 +2111,14 @@ lot of {Linux} into your technology!!!" | |||
2066 | ,month="February" | 2111 | ,month="February" |
2067 | ,day="5" | 2112 | ,day="5" |
2068 | ,year="2009" | 2113 | ,year="2009" |
2069 | ,note="Available: | 2114 | ,note="\url{http://lttng.org/urcu}" |
2070 | \url{http://lkml.org/lkml/2009/2/5/572} | 2115 | ,annotation={ |
2071 | \url{http://lttng.org/urcu} | ||
2072 | [Viewed February 20, 2009]" | ||
2073 | ,annotation=" | ||
2074 | Mathieu Desnoyers's user-space RCU implementation. | 2116 | Mathieu Desnoyers's user-space RCU implementation. |
2075 | git://lttng.org/userspace-rcu.git | 2117 | git://lttng.org/userspace-rcu.git |
2076 | http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git | 2118 | http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git |
2077 | http://lttng.org/urcu | 2119 | http://lttng.org/urcu |
2078 | " | 2120 | http://lkml.org/lkml/2009/2/5/572 |
2121 | } | ||
2079 | } | 2122 | } |
2080 | 2123 | ||
2081 | @unpublished{PaulEMcKenney2009LWNBloatWatchRCU | 2124 | @unpublished{PaulEMcKenney2009LWNBloatWatchRCU |
@@ -2087,9 +2130,24 @@ lot of {Linux} into your technology!!!" | |||
2087 | ,note="Available: | 2130 | ,note="Available: |
2088 | \url{http://lwn.net/Articles/323929/} | 2131 | \url{http://lwn.net/Articles/323929/} |
2089 | [Viewed March 20, 2009]" | 2132 | [Viewed March 20, 2009]" |
2090 | ,annotation=" | 2133 | ,annotation={ |
2091 | Uniprocessor assumptions allow simplified RCU implementation. | 2134 | Uniprocessor assumptions allow simplified RCU implementation. |
2092 | " | 2135 | } |
2136 | } | ||
2137 | |||
2138 | @unpublished{EvgeniyPolyakov2009EllipticsNetwork | ||
2139 | ,Author="Evgeniy Polyakov" | ||
2140 | ,Title="The Elliptics Network" | ||
2141 | ,month="April" | ||
2142 | ,day="17" | ||
2143 | ,year="2009" | ||
2144 | ,note="Available: | ||
2145 | \url{http://www.ioremap.net/projects/elliptics} | ||
2146 | [Viewed April 30, 2009]" | ||
2147 | ,annotation={ | ||
2148 | Distributed hash table with transactions, using elliptic | ||
2149 | hash functions to distribute data. | ||
2150 | } | ||
2093 | } | 2151 | } |
2094 | 2152 | ||
2095 | @unpublished{PaulEMcKenney2009expeditedRCU | 2153 | @unpublished{PaulEMcKenney2009expeditedRCU |
@@ -2101,9 +2159,9 @@ lot of {Linux} into your technology!!!" | |||
2101 | ,note="Available: | 2159 | ,note="Available: |
2102 | \url{http://lkml.org/lkml/2009/6/25/306} | 2160 | \url{http://lkml.org/lkml/2009/6/25/306} |
2103 | [Viewed August 16, 2009]" | 2161 | [Viewed August 16, 2009]" |
2104 | ,annotation=" | 2162 | ,annotation={ |
2105 | First posting of expedited RCU to be accepted into -tip. | 2163 | First posting of expedited RCU to be accepted into -tip. |
2106 | " | 2164 | } |
2107 | } | 2165 | } |
2108 | 2166 | ||
2109 | @unpublished{PaulEMcKenney2009fastRTRCU | 2167 | @unpublished{PaulEMcKenney2009fastRTRCU |
@@ -2115,21 +2173,21 @@ lot of {Linux} into your technology!!!" | |||
2115 | ,note="Available: | 2173 | ,note="Available: |
2116 | \url{http://lkml.org/lkml/2009/7/23/294} | 2174 | \url{http://lkml.org/lkml/2009/7/23/294} |
2117 | [Viewed August 15, 2009]" | 2175 | [Viewed August 15, 2009]" |
2118 | ,annotation=" | 2176 | ,annotation={ |
2119 | First posting of simple and fast preemptable RCU. | 2177 | First posting of simple and fast preemptable RCU. |
2120 | " | 2178 | } |
2121 | } | 2179 | } |
2122 | 2180 | ||
2123 | @InProceedings{JoshTriplett2009RPHash | 2181 | @unpublished{JoshTriplett2009RPHash |
2124 | ,Author="Josh Triplett" | 2182 | ,Author="Josh Triplett" |
2125 | ,Title="Scalable concurrent hash tables via relativistic programming" | 2183 | ,Title="Scalable concurrent hash tables via relativistic programming" |
2126 | ,month="September" | 2184 | ,month="September" |
2127 | ,year="2009" | 2185 | ,year="2009" |
2128 | ,booktitle="Linux Plumbers Conference 2009" | 2186 | ,note="Linux Plumbers Conference presentation" |
2129 | ,annotation=" | 2187 | ,annotation={ |
2130 | RP fun with hash tables. | 2188 | RP fun with hash tables. |
2131 | See also JoshTriplett2010RPHash | 2189 | Superseded by JoshTriplett2010RPHash |
2132 | " | 2190 | } |
2133 | } | 2191 | } |
2134 | 2192 | ||
2135 | @phdthesis{MathieuDesnoyersPhD | 2193 | @phdthesis{MathieuDesnoyersPhD |
@@ -2154,9 +2212,9 @@ lot of {Linux} into your technology!!!" | |||
2154 | ,note="Available: | 2212 | ,note="Available: |
2155 | \url{http://wiki.cs.pdx.edu/rp/} | 2213 | \url{http://wiki.cs.pdx.edu/rp/} |
2156 | [Viewed December 9, 2009]" | 2214 | [Viewed December 9, 2009]" |
2157 | ,annotation=" | 2215 | ,annotation={ |
2158 | Main Relativistic Programming Wiki. | 2216 | Main Relativistic Programming Wiki. |
2159 | " | 2217 | } |
2160 | } | 2218 | } |
2161 | 2219 | ||
2162 | @conference{PaulEMcKenney2009DeterministicRCU | 2220 | @conference{PaulEMcKenney2009DeterministicRCU |
@@ -2180,9 +2238,9 @@ lot of {Linux} into your technology!!!" | |||
2180 | ,note="Available: | 2238 | ,note="Available: |
2181 | \url{http://paulmck.livejournal.com/14639.html} | 2239 | \url{http://paulmck.livejournal.com/14639.html} |
2182 | [Viewed June 4, 2010]" | 2240 | [Viewed June 4, 2010]" |
2183 | ,annotation=" | 2241 | ,annotation={ |
2184 | Day-one bug in Tree RCU that took forever to track down. | 2242 | Day-one bug in Tree RCU that took forever to track down. |
2185 | " | 2243 | } |
2186 | } | 2244 | } |
2187 | 2245 | ||
2188 | @unpublished{MathieuDesnoyers2009defer:rcu | 2246 | @unpublished{MathieuDesnoyers2009defer:rcu |
@@ -2193,10 +2251,10 @@ lot of {Linux} into your technology!!!" | |||
2193 | ,note="Available: | 2251 | ,note="Available: |
2194 | \url{http://lkml.org/lkml/2009/10/18/129} | 2252 | \url{http://lkml.org/lkml/2009/10/18/129} |
2195 | [Viewed December 29, 2009]" | 2253 | [Viewed December 29, 2009]" |
2196 | ,annotation=" | 2254 | ,annotation={ |
2197 | Mathieu proposed defer_rcu() with fixed-size per-thread pool | 2255 | Mathieu proposed defer_rcu() with fixed-size per-thread pool |
2198 | of RCU callbacks. | 2256 | of RCU callbacks. |
2199 | " | 2257 | } |
2200 | } | 2258 | } |
2201 | 2259 | ||
2202 | @unpublished{MathieuDesnoyers2009VerifPrePub | 2260 | @unpublished{MathieuDesnoyers2009VerifPrePub |
@@ -2205,10 +2263,10 @@ lot of {Linux} into your technology!!!" | |||
2205 | ,month="December" | 2263 | ,month="December" |
2206 | ,year="2009" | 2264 | ,year="2009" |
2207 | ,note="Submitted to IEEE TPDS" | 2265 | ,note="Submitted to IEEE TPDS" |
2208 | ,annotation=" | 2266 | ,annotation={ |
2209 | OOMem model for Mathieu's user-level RCU mechanical proof of | 2267 | OOMem model for Mathieu's user-level RCU mechanical proof of |
2210 | correctness. | 2268 | correctness. |
2211 | " | 2269 | } |
2212 | } | 2270 | } |
2213 | 2271 | ||
2214 | @unpublished{MathieuDesnoyers2009URCUPrePub | 2272 | @unpublished{MathieuDesnoyers2009URCUPrePub |
@@ -2216,15 +2274,15 @@ lot of {Linux} into your technology!!!" | |||
2216 | ,Title="User-Level Implementations of Read-Copy Update" | 2274 | ,Title="User-Level Implementations of Read-Copy Update" |
2217 | ,month="December" | 2275 | ,month="December" |
2218 | ,year="2010" | 2276 | ,year="2010" |
2219 | ,url=\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html} | 2277 | ,url={\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html}} |
2220 | ,annotation=" | 2278 | ,annotation={ |
2221 | RCU overview, desiderata, semi-formal semantics, user-level RCU | 2279 | RCU overview, desiderata, semi-formal semantics, user-level RCU |
2222 | usage scenarios, three classes of RCU implementation, wait-free | 2280 | usage scenarios, three classes of RCU implementation, wait-free |
2223 | RCU updates, RCU grace-period batching, update overhead, | 2281 | RCU updates, RCU grace-period batching, update overhead, |
2224 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf | 2282 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf |
2225 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf | 2283 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf |
2226 | Superseded by MathieuDesnoyers2012URCU. | 2284 | Superseded by MathieuDesnoyers2012URCU. |
2227 | " | 2285 | } |
2228 | } | 2286 | } |
2229 | 2287 | ||
2230 | @inproceedings{HariKannan2009DynamicAnalysisRCU | 2288 | @inproceedings{HariKannan2009DynamicAnalysisRCU |
@@ -2240,7 +2298,8 @@ lot of {Linux} into your technology!!!" | |||
2240 | ,address = {New York, NY, USA} | 2298 | ,address = {New York, NY, USA} |
2241 | ,annotation={ | 2299 | ,annotation={ |
2242 | Uses RCU to protect metadata used in dynamic analysis. | 2300 | Uses RCU to protect metadata used in dynamic analysis. |
2243 | }} | 2301 | } |
2302 | } | ||
2244 | 2303 | ||
2245 | @conference{PaulEMcKenney2010SimpleOptRCU | 2304 | @conference{PaulEMcKenney2010SimpleOptRCU |
2246 | ,Author="Paul E. McKenney" | 2305 | ,Author="Paul E. McKenney" |
@@ -2252,10 +2311,10 @@ lot of {Linux} into your technology!!!" | |||
2252 | ,note="Available: | 2311 | ,note="Available: |
2253 | \url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf} | 2312 | \url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf} |
2254 | [Viewed October 10, 2010]" | 2313 | [Viewed October 10, 2010]" |
2255 | ,annotation=" | 2314 | ,annotation={ |
2256 | TREE_PREEMPT_RCU optimizations greatly simplified the old | 2315 | TREE_PREEMPT_RCU optimizations greatly simplified the old |
2257 | PREEMPT_RCU implementation. | 2316 | PREEMPT_RCU implementation. |
2258 | " | 2317 | } |
2259 | } | 2318 | } |
2260 | 2319 | ||
2261 | @unpublished{PaulEMcKenney2010LockdepRCU | 2320 | @unpublished{PaulEMcKenney2010LockdepRCU |
@@ -2264,12 +2323,11 @@ lot of {Linux} into your technology!!!" | |||
2264 | ,month="February" | 2323 | ,month="February" |
2265 | ,year="2010" | 2324 | ,year="2010" |
2266 | ,day="1" | 2325 | ,day="1" |
2267 | ,note="Available: | 2326 | ,note="\url{https://lwn.net/Articles/371986/}" |
2268 | \url{https://lwn.net/Articles/371986/} | 2327 | ,annotation={ |
2269 | [Viewed June 4, 2010]" | ||
2270 | ,annotation=" | ||
2271 | CONFIG_PROVE_RCU, or at least an early version. | 2328 | CONFIG_PROVE_RCU, or at least an early version. |
2272 | " | 2329 | [Viewed June 4, 2010] |
2330 | } | ||
2273 | } | 2331 | } |
2274 | 2332 | ||
2275 | @unpublished{AviKivity2010KVM2RCU | 2333 | @unpublished{AviKivity2010KVM2RCU |
@@ -2280,10 +2338,10 @@ lot of {Linux} into your technology!!!" | |||
2280 | ,note="Available: | 2338 | ,note="Available: |
2281 | \url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html} | 2339 | \url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html} |
2282 | [Viewed March 20, 2010]" | 2340 | [Viewed March 20, 2010]" |
2283 | ,annotation=" | 2341 | ,annotation={ |
2284 | Use of RCU permits KVM to increase the size of guest OSes from | 2342 | Use of RCU permits KVM to increase the size of guest OSes from |
2285 | 16 CPUs to 64 CPUs. | 2343 | 16 CPUs to 64 CPUs. |
2286 | " | 2344 | } |
2287 | } | 2345 | } |
2288 | 2346 | ||
2289 | @unpublished{HerbertXu2010RCUResizeHash | 2347 | @unpublished{HerbertXu2010RCUResizeHash |
@@ -2297,7 +2355,19 @@ lot of {Linux} into your technology!!!" | |||
2297 | ,annotation={ | 2355 | ,annotation={ |
2298 | Use a pair of list_head structures to support RCU-protected | 2356 | Use a pair of list_head structures to support RCU-protected |
2299 | resizable hash tables. | 2357 | resizable hash tables. |
2300 | }} | 2358 | } |
2359 | } | ||
2360 | |||
2361 | @mastersthesis{AbhinavDuggal2010Masters | ||
2362 | ,author="Abhinav Duggal" | ||
2363 | ,title="Stopping Data Races Using Redflag" | ||
2364 | ,school="Stony Brook University" | ||
2365 | ,year="2010" | ||
2366 | ,annotation={ | ||
2367 | Data-race detector incorporating RCU. | ||
2368 | http://www.filesystems.org/docs/abhinav-thesis/abhinav_thesis.pdf | ||
2369 | } | ||
2370 | } | ||
2301 | 2371 | ||
2302 | @article{JoshTriplett2010RPHash | 2372 | @article{JoshTriplett2010RPHash |
2303 | ,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" | 2373 | ,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" |
@@ -2310,7 +2380,8 @@ lot of {Linux} into your technology!!!" | |||
2310 | ,annotation={ | 2380 | ,annotation={ |
2311 | RP fun with hash tables. | 2381 | RP fun with hash tables. |
2312 | http://portal.acm.org/citation.cfm?id=1842733.1842750 | 2382 | http://portal.acm.org/citation.cfm?id=1842733.1842750 |
2313 | }} | 2383 | } |
2384 | } | ||
2314 | 2385 | ||
2315 | @unpublished{PaulEMcKenney2010RCUAPI | 2386 | @unpublished{PaulEMcKenney2010RCUAPI |
2316 | ,Author="Paul E. McKenney" | 2387 | ,Author="Paul E. McKenney" |
@@ -2318,12 +2389,11 @@ lot of {Linux} into your technology!!!" | |||
2318 | ,month="December" | 2389 | ,month="December" |
2319 | ,day="8" | 2390 | ,day="8" |
2320 | ,year="2010" | 2391 | ,year="2010" |
2321 | ,note="Available: | 2392 | ,note="\url{http://lwn.net/Articles/418853/}" |
2322 | \url{http://lwn.net/Articles/418853/} | 2393 | ,annotation={ |
2323 | [Viewed December 8, 2010]" | ||
2324 | ,annotation=" | ||
2325 | Includes updated software-engineering features. | 2394 | Includes updated software-engineering features. |
2326 | " | 2395 | [Viewed December 8, 2010] |
2396 | } | ||
2327 | } | 2397 | } |
2328 | 2398 | ||
2329 | @mastersthesis{AndrejPodzimek2010masters | 2399 | @mastersthesis{AndrejPodzimek2010masters |
@@ -2338,7 +2408,8 @@ lot of {Linux} into your technology!!!" | |||
2338 | Reviews RCU implementations and creates a few for OpenSolaris. | 2408 | Reviews RCU implementations and creates a few for OpenSolaris. |
2339 | Drives quiescent-state detection from RCU read-side primitives, | 2409 | Drives quiescent-state detection from RCU read-side primitives, |
2340 | in a manner roughly similar to that of Jim Houston. | 2410 | in a manner roughly similar to that of Jim Houston. |
2341 | }} | 2411 | } |
2412 | } | ||
2342 | 2413 | ||
2343 | @unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS | 2414 | @unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS |
2344 | ,Author="Linus Torvalds" | 2415 | ,Author="Linus Torvalds" |
@@ -2358,7 +2429,8 @@ lot of {Linux} into your technology!!!" | |||
2358 | of the most expensive parts of path component lookup, which was the | 2429 | of the most expensive parts of path component lookup, which was the |
2359 | d_lock on every component lookup. So I'm seeing improvements of 30-50% | 2430 | d_lock on every component lookup. So I'm seeing improvements of 30-50% |
2360 | on some seriously pathname-lookup intensive loads." | 2431 | on some seriously pathname-lookup intensive loads." |
2361 | }} | 2432 | } |
2433 | } | ||
2362 | 2434 | ||
2363 | @techreport{JoshTriplett2011RPScalableCorrectOrdering | 2435 | @techreport{JoshTriplett2011RPScalableCorrectOrdering |
2364 | ,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole} | 2436 | ,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole} |
@@ -2392,12 +2464,12 @@ lot of {Linux} into your technology!!!" | |||
2392 | ,number="US Patent 7,953,778" | 2464 | ,number="US Patent 7,953,778" |
2393 | ,month="May" | 2465 | ,month="May" |
2394 | ,pages="34" | 2466 | ,pages="34" |
2395 | ,annotation=" | 2467 | ,annotation={ |
2396 | Maintains an array of generation numbers to track in-flight | 2468 | Maintains an array of generation numbers to track in-flight |
2397 | updates and keeps an additional level of indirection to allow | 2469 | updates and keeps an additional level of indirection to allow |
2398 | readers to confine themselves to the desired snapshot of the | 2470 | readers to confine themselves to the desired snapshot of the |
2399 | data structure. | 2471 | data structure. |
2400 | " | 2472 | } |
2401 | } | 2473 | } |
2402 | 2474 | ||
2403 | @inproceedings{Triplett:2011:RPHash | 2475 | @inproceedings{Triplett:2011:RPHash |
@@ -2408,7 +2480,7 @@ lot of {Linux} into your technology!!!" | |||
2408 | ,year = {2011} | 2480 | ,year = {2011} |
2409 | ,pages = {145--158} | 2481 | ,pages = {145--158} |
2410 | ,numpages = {14} | 2482 | ,numpages = {14} |
2411 | ,url={http://www.usenix.org/event/atc11/tech/final_files/atc11_proceedings.pdf} | 2483 | ,url={http://www.usenix.org/event/atc11/tech/final_files/Triplett.pdf} |
2412 | ,publisher = {The USENIX Association} | 2484 | ,publisher = {The USENIX Association} |
2413 | ,address = {Portland, OR USA} | 2485 | ,address = {Portland, OR USA} |
2414 | } | 2486 | } |
@@ -2419,27 +2491,58 @@ lot of {Linux} into your technology!!!" | |||
2419 | ,month="July" | 2491 | ,month="July" |
2420 | ,day="27" | 2492 | ,day="27" |
2421 | ,year="2011" | 2493 | ,year="2011" |
2422 | ,note="Available: | 2494 | ,note="\url{http://lwn.net/Articles/453002/}" |
2423 | \url{http://lwn.net/Articles/453002/} | 2495 | ,annotation={ |
2424 | [Viewed July 27, 2011]" | ||
2425 | ,annotation=" | ||
2426 | Analysis of the RCU trainwreck in Linux kernel 3.0. | 2496 | Analysis of the RCU trainwreck in Linux kernel 3.0. |
2427 | " | 2497 | [Viewed July 27, 2011] |
2498 | } | ||
2428 | } | 2499 | } |
2429 | 2500 | ||
2430 | @unpublished{NeilBrown2011MeetTheLockers | 2501 | @unpublished{NeilBrown2011MeetTheLockers |
2431 | ,Author="Neil Brown" | 2502 | ,Author="Neil Brown" |
2432 | ,Title="Meet the Lockers" | 2503 | ,Title="Meet the {Lockers}" |
2433 | ,month="August" | 2504 | ,month="August" |
2434 | ,day="3" | 2505 | ,day="3" |
2435 | ,year="2011" | 2506 | ,year="2011" |
2436 | ,note="Available: | 2507 | ,note="Available: |
2437 | \url{http://lwn.net/Articles/453685/} | 2508 | \url{http://lwn.net/Articles/453685/} |
2438 | [Viewed September 2, 2011]" | 2509 | [Viewed September 2, 2011]" |
2439 | ,annotation=" | 2510 | ,annotation={ |
2440 | The Locker family as an analogy for locking, reference counting, | 2511 | The Locker family as an analogy for locking, reference counting, |
2441 | RCU, and seqlock. | 2512 | RCU, and seqlock. |
2442 | " | 2513 | } |
2514 | } | ||
2515 | |||
2516 | @inproceedings{Seyster:2011:RFA:2075416.2075425 | ||
2517 | ,author = {Seyster, Justin and Radhakrishnan, Prabakar and Katoch, Samriti and Duggal, Abhinav and Stoller, Scott D. and Zadok, Erez} | ||
2518 | ,title = {Redflag: a framework for analysis of Kernel-level concurrency} | ||
2519 | ,booktitle = {Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I} | ||
2520 | ,series = {ICA3PP'11} | ||
2521 | ,year = {2011} | ||
2522 | ,isbn = {978-3-642-24649-4} | ||
2523 | ,location = {Melbourne, Australia} | ||
2524 | ,pages = {66--79} | ||
2525 | ,numpages = {14} | ||
2526 | ,url = {http://dl.acm.org/citation.cfm?id=2075416.2075425} | ||
2527 | ,acmid = {2075425} | ||
2528 | ,publisher = {Springer-Verlag} | ||
2529 | ,address = {Berlin, Heidelberg} | ||
2530 | } | ||
2531 | |||
2532 | @phdthesis{JoshTriplettPhD | ||
2533 | ,author="Josh Triplett" | ||
2534 | ,title="Relativistic Causal Ordering: A Memory Model for Scalable Concurrent Data Structures" | ||
2535 | ,school="Portland State University" | ||
2536 | ,year="2012" | ||
2537 | ,annotation={ | ||
2538 | RCU-protected hash tables, barriers vs. read-side traversal order. | ||
2539 | . | ||
2540 | If the updater is making changes in the opposite direction from | ||
2541 | the read-side traveral order, the updater need only execute a | ||
2542 | memory-barrier instruction, but if in the same direction, the | ||
2543 | updater needs to wait for a grace period between the individual | ||
2544 | updates. | ||
2545 | } | ||
2443 | } | 2546 | } |
2444 | 2547 | ||
2445 | @article{MathieuDesnoyers2012URCU | 2548 | @article{MathieuDesnoyers2012URCU |
@@ -2459,5 +2562,150 @@ lot of {Linux} into your technology!!!" | |||
2459 | RCU updates, RCU grace-period batching, update overhead, | 2562 | RCU updates, RCU grace-period batching, update overhead, |
2460 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf | 2563 | http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf |
2461 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf | 2564 | http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf |
2565 | http://www.computer.org/cms/Computer.org/dl/trans/td/2012/02/extras/ttd2012020375s.pdf | ||
2566 | } | ||
2567 | } | ||
2568 | |||
2569 | @inproceedings{AustinClements2012RCULinux:mmapsem | ||
2570 | ,author = {Austin Clements and Frans Kaashoek and Nickolai Zeldovich} | ||
2571 | ,title = {Scalable Address Spaces Using {RCU} Balanced Trees} | ||
2572 | ,booktitle = {Architectural Support for Programming Languages and Operating Systems (ASPLOS 2012)} | ||
2573 | ,month = {March} | ||
2574 | ,year = {2012} | ||
2575 | ,pages = {199--210} | ||
2576 | ,numpages = {12} | ||
2577 | ,publisher = {ACM} | ||
2578 | ,address = {London, UK} | ||
2579 | ,url="http://people.csail.mit.edu/nickolai/papers/clements-bonsai.pdf" | ||
2580 | } | ||
2581 | |||
2582 | @unpublished{PaulEMcKenney2012ELCbattery | ||
2583 | ,Author="Paul E. McKenney" | ||
2584 | ,Title="Making {RCU} Safe For Battery-Powered Devices" | ||
2585 | ,month="February" | ||
2586 | ,day="15" | ||
2587 | ,year="2012" | ||
2588 | ,note="Available: | ||
2589 | \url{http://www.rdrop.com/users/paulmck/RCU/RCUdynticks.2012.02.15b.pdf} | ||
2590 | [Viewed March 1, 2012]" | ||
2591 | ,annotation={ | ||
2592 | RCU_FAST_NO_HZ, round 2. | ||
2593 | } | ||
2594 | } | ||
2595 | |||
2596 | @article{GuillermoVigueras2012RCUCrowd | ||
2597 | ,author = {Vigueras, Guillermo and Ordu\~{n}a, Juan M. and Lozano, Miguel} | ||
2598 | ,day = {25} | ||
2599 | ,doi = {10.1007/s11227-012-0766-x} | ||
2600 | ,issn = {0920-8542} | ||
2601 | ,journal = {The Journal of Supercomputing} | ||
2602 | ,keywords = {linux, simulation} | ||
2603 | ,month = apr | ||
2604 | ,posted-at = {2012-05-03 09:12:04} | ||
2605 | ,priority = {2} | ||
2606 | ,title = {{A Read-Copy Update based parallel server for distributed crowd simulations}} | ||
2607 | ,url = {http://dx.doi.org/10.1007/s11227-012-0766-x} | ||
2608 | ,year = {2012} | ||
2609 | } | ||
2610 | |||
2611 | |||
2612 | @unpublished{JonCorbet2012ACCESS:ONCE | ||
2613 | ,Author="Jon Corbet" | ||
2614 | ,Title="{ACCESS\_ONCE()}" | ||
2615 | ,month="August" | ||
2616 | ,day="1" | ||
2617 | ,year="2012" | ||
2618 | ,note="\url{http://lwn.net/Articles/508991/}" | ||
2619 | ,annotation={ | ||
2620 | A couple of simple specific compiler optimizations that motivate | ||
2621 | ACCESS_ONCE(). | ||
2622 | } | ||
2623 | } | ||
2624 | |||
2625 | @unpublished{AlexeyGotsman2012VerifyGraceExtended | ||
2626 | ,Author="Alexey Gotsman and Noam Rinetzky and Hongseok Yang" | ||
2627 | ,Title="Verifying Highly Concurrent Algorithms with Grace (extended version)" | ||
2628 | ,month="July" | ||
2629 | ,day="10" | ||
2630 | ,year="2012" | ||
2631 | ,note="\url{http://software.imdea.org/~gotsman/papers/recycling-esop13-ext.pdf}" | ||
2632 | ,annotation={ | ||
2633 | Separation-logic formulation of RCU uses. | ||
2634 | } | ||
2635 | } | ||
2636 | |||
2637 | @unpublished{PaulMcKenney2012RCUUsage | ||
2638 | ,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole" | ||
2639 | ,Title="{RCU} Usage In the Linux Kernel: One Decade Later" | ||
2640 | ,month="September" | ||
2641 | ,day="17" | ||
2642 | ,year="2012" | ||
2643 | ,url=http://rdrop.com/users/paulmck/techreports/survey.2012.09.17a.pdf | ||
2644 | ,note="Technical report paulmck.2012.09.17" | ||
2645 | ,annotation={ | ||
2646 | Overview of the first variant of no-CBs CPUs for RCU. | ||
2647 | } | ||
2648 | } | ||
2649 | |||
2650 | @unpublished{JonCorbet2012NOCB | ||
2651 | ,Author="Jon Corbet" | ||
2652 | ,Title="Relocating RCU callbacks" | ||
2653 | ,month="October" | ||
2654 | ,day="31" | ||
2655 | ,year="2012" | ||
2656 | ,note="\url{http://lwn.net/Articles/522262/}" | ||
2657 | ,annotation={ | ||
2658 | Overview of the first variant of no-CBs CPUs for RCU. | ||
2659 | } | ||
2660 | } | ||
2661 | |||
2662 | @phdthesis{JustinSeyster2012PhD | ||
2663 | ,author="Justin Seyster" | ||
2664 | ,title="Runtime Verification of Kernel-Level Concurrency Using Compiler-Based Instrumentation" | ||
2665 | ,school="Stony Brook University" | ||
2666 | ,year="2012" | ||
2667 | ,annotation={ | ||
2668 | Looking for data races, including those involving RCU. | ||
2669 | Proposal: | ||
2670 | http://www.fsl.cs.sunysb.edu/docs/jseyster-proposal/redflag.pdf | ||
2671 | Dissertation: | ||
2672 | http://www.fsl.cs.sunysb.edu/docs/jseyster-dissertation/redflag.pdf | ||
2673 | } | ||
2674 | } | ||
2675 | |||
2676 | @unpublished{PaulEMcKenney2013RCUUsage | ||
2677 | ,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole" | ||
2678 | ,Title="{RCU} Usage in the {Linux} Kernel: One Decade Later" | ||
2679 | ,month="February" | ||
2680 | ,day="24" | ||
2681 | ,year="2013" | ||
2682 | ,note="\url{http://rdrop.com/users/paulmck/techreports/RCUUsage.2013.02.24a.pdf}" | ||
2683 | ,annotation={ | ||
2684 | Usage of RCU within the Linux kernel. | ||
2685 | } | ||
2686 | } | ||
2687 | |||
2688 | @inproceedings{AlexeyGotsman2013ESOPRCU | ||
2689 | ,author = {Alexey Gotsman and Noam Rinetzky and Hongseok Yang} | ||
2690 | ,title = {Verifying concurrent memory reclamation algorithms with grace} | ||
2691 | ,booktitle = {ESOP'13: European Symposium on Programming} | ||
2692 | ,year = {2013} | ||
2693 | ,pages = {249--269} | ||
2694 | ,publisher = {Springer} | ||
2695 | ,address = {Rome, Italy} | ||
2696 | ,annotation={ | ||
2697 | http://software.imdea.org/~gotsman/papers/recycling-esop13.pdf | ||
2698 | } | ||
2699 | } | ||
2700 | |||
2701 | @unpublished{PaulEMcKenney2013NoTinyPreempt | ||
2702 | ,Author="Paul E. McKenney" | ||
2703 | ,Title="Simplifying RCU" | ||
2704 | ,month="March" | ||
2705 | ,day="6" | ||
2706 | ,year="2013" | ||
2707 | ,note="\url{http://lwn.net/Articles/541037/}" | ||
2708 | ,annotation={ | ||
2709 | Getting rid of TINY_PREEMPT_RCU. | ||
2462 | } | 2710 | } |
2463 | } | 2711 | } |