diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-28 13:13:16 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-28 13:13:16 -0500 |
| commit | 642c4c75a765d7a3244ab39c8e6fb09be21eca5b (patch) | |
| tree | ce0be9b476f362835d3a3d6e4fd32801cd15c9fe | |
| parent | f91b22c35f6b0ae06ec5b67922eca1999c3b6e0a (diff) | |
| parent | 71da81324c83ef65bb196c7f874ac1c6996d8287 (diff) | |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (44 commits)
rcu: Fix accelerated GPs for last non-dynticked CPU
rcu: Make non-RCU_PROVE_LOCKING rcu_read_lock_sched_held() understand boot
rcu: Fix accelerated grace periods for last non-dynticked CPU
rcu: Export rcu_scheduler_active
rcu: Make rcu_read_lock_sched_held() take boot time into account
rcu: Make lockdep_rcu_dereference() message less alarmist
sched, cgroups: Fix module export
rcu: Add RCU_CPU_STALL_VERBOSE to dump detailed per-task information
rcu: Fix rcutorture mod_timer argument to delay one jiffy
rcu: Fix deadlock in TREE_PREEMPT_RCU CPU stall detection
rcu: Convert to raw_spinlocks
rcu: Stop overflowing signed integers
rcu: Use canonical URL for Mathieu's dissertation
rcu: Accelerate grace period if last non-dynticked CPU
rcu: Fix citation of Mathieu's dissertation
rcu: Documentation update for CONFIG_PROVE_RCU
security: Apply lockdep-based checking to rcu_dereference() uses
idr: Apply lockdep-based diagnostics to rcu_dereference() uses
radix-tree: Disable RCU lockdep checking in radix tree
vfs: Abstract rcu_dereference_check for files-fdtable use
...
55 files changed, 1346 insertions, 448 deletions
diff --git a/Documentation/RCU/00-INDEX b/Documentation/RCU/00-INDEX index 9bb62f7b89c3..71b6f500ddb9 100644 --- a/Documentation/RCU/00-INDEX +++ b/Documentation/RCU/00-INDEX | |||
| @@ -6,16 +6,22 @@ checklist.txt | |||
| 6 | - Review Checklist for RCU Patches | 6 | - Review Checklist for RCU Patches |
| 7 | listRCU.txt | 7 | listRCU.txt |
| 8 | - Using RCU to Protect Read-Mostly Linked Lists | 8 | - Using RCU to Protect Read-Mostly Linked Lists |
| 9 | lockdep.txt | ||
| 10 | - RCU and lockdep checking | ||
| 9 | NMI-RCU.txt | 11 | NMI-RCU.txt |
| 10 | - Using RCU to Protect Dynamic NMI Handlers | 12 | - Using RCU to Protect Dynamic NMI Handlers |
| 13 | rcubarrier.txt | ||
| 14 | - RCU and Unloadable Modules | ||
| 15 | rculist_nulls.txt | ||
| 16 | - RCU list primitives for use with SLAB_DESTROY_BY_RCU | ||
| 11 | rcuref.txt | 17 | rcuref.txt |
| 12 | - Reference-count design for elements of lists/arrays protected by RCU | 18 | - Reference-count design for elements of lists/arrays protected by RCU |
| 13 | rcu.txt | 19 | rcu.txt |
| 14 | - RCU Concepts | 20 | - RCU Concepts |
| 15 | rcubarrier.txt | ||
| 16 | - Unloading modules that use RCU callbacks | ||
| 17 | RTFP.txt | 21 | RTFP.txt |
| 18 | - List of RCU papers (bibliography) going back to 1980. | 22 | - List of RCU papers (bibliography) going back to 1980. |
| 23 | stallwarn.txt | ||
| 24 | - RCU CPU stall warnings (CONFIG_RCU_CPU_STALL_DETECTOR) | ||
| 19 | torture.txt | 25 | torture.txt |
| 20 | - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST) | 26 | - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST) |
| 21 | trace.txt | 27 | trace.txt |
diff --git a/Documentation/RCU/RTFP.txt b/Documentation/RCU/RTFP.txt index d2b85237c76e..5aea459e3dd6 100644 --- a/Documentation/RCU/RTFP.txt +++ b/Documentation/RCU/RTFP.txt | |||
| @@ -25,10 +25,10 @@ to be referencing the data structure. However, this mechanism was not | |||
| 25 | optimized for modern computer systems, which is not surprising given | 25 | optimized for modern computer systems, which is not surprising given |
| 26 | that these overheads were not so expensive in the mid-80s. Nonetheless, | 26 | that these overheads were not so expensive in the mid-80s. Nonetheless, |
| 27 | passive serialization appears to be the first deferred-destruction | 27 | passive serialization appears to be the first deferred-destruction |
| 28 | mechanism to be used in production. Furthermore, the relevant patent has | 28 | mechanism to be used in production. Furthermore, the relevant patent |
| 29 | lapsed, so this approach may be used in non-GPL software, if desired. | 29 | has lapsed, so this approach may be used in non-GPL software, if desired. |
| 30 | (In contrast, use of RCU is permitted only in software licensed under | 30 | (In contrast, implementation of RCU is permitted only in software licensed |
| 31 | GPL. Sorry!!!) | 31 | under either GPL or LGPL. Sorry!!!) |
| 32 | 32 | ||
| 33 | In 1990, Pugh [Pugh90] noted that explicitly tracking which threads | 33 | In 1990, Pugh [Pugh90] noted that explicitly tracking which threads |
| 34 | were reading a given data structure permitted deferred free to operate | 34 | were reading a given data structure permitted deferred free to operate |
| @@ -150,6 +150,18 @@ preemptible RCU [PaulEMcKenney2007PreemptibleRCU], and the three-part | |||
| 150 | LWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally, | 150 | LWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally, |
| 151 | PaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI]. | 151 | PaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI]. |
| 152 | 152 | ||
| 153 | 2008 saw a journal paper on real-time RCU [DinakarGuniguntala2008IBMSysJ], | ||
| 154 | a history of how Linux changed RCU more than RCU changed Linux | ||
| 155 | [PaulEMcKenney2008RCUOSR], and a design overview of hierarchical RCU | ||
| 156 | [PaulEMcKenney2008HierarchicalRCU]. | ||
| 157 | |||
| 158 | 2009 introduced user-level RCU algorithms [PaulEMcKenney2009MaliciousURCU], | ||
| 159 | which Mathieu Desnoyers is now maintaining [MathieuDesnoyers2009URCU] | ||
| 160 | [MathieuDesnoyersPhD]. TINY_RCU [PaulEMcKenney2009BloatWatchRCU] made | ||
| 161 | its appearance, as did expedited RCU [PaulEMcKenney2009expeditedRCU]. | ||
| 162 | The problem of resizeable RCU-protected hash tables may now be on a path | ||
| 163 | to a solution [JoshTriplett2009RPHash]. | ||
| 164 | |||
| 153 | Bibtex Entries | 165 | Bibtex Entries |
| 154 | 166 | ||
| 155 | @article{Kung80 | 167 | @article{Kung80 |
| @@ -730,6 +742,11 @@ Revised: | |||
| 730 | " | 742 | " |
| 731 | } | 743 | } |
| 732 | 744 | ||
| 745 | # | ||
| 746 | # "What is RCU?" LWN series. | ||
| 747 | # | ||
| 748 | ######################################################################## | ||
| 749 | |||
| 733 | @article{DinakarGuniguntala2008IBMSysJ | 750 | @article{DinakarGuniguntala2008IBMSysJ |
| 734 | ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" | 751 | ,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" |
| 735 | ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" | 752 | ,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" |
| @@ -820,3 +837,39 @@ Revised: | |||
| 820 | Uniprocessor assumptions allow simplified RCU implementation. | 837 | Uniprocessor assumptions allow simplified RCU implementation. |
| 821 | " | 838 | " |
| 822 | } | 839 | } |
| 840 | |||
| 841 | @unpublished{PaulEMcKenney2009expeditedRCU | ||
| 842 | ,Author="Paul E. McKenney" | ||
| 843 | ,Title="[{PATCH} -tip 0/3] expedited 'big hammer' {RCU} grace periods" | ||
| 844 | ,month="June" | ||
| 845 | ,day="25" | ||
| 846 | ,year="2009" | ||
