diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2008-01-25 15:08:25 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-25 15:08:25 -0500 |
commit | f85d6c7168887e6659f4d00fa5f34fa23dbde1bb (patch) | |
tree | 8a06a394c5963fe1428d023e03ac9896087b23b2 /Documentation/RCU/rcu.txt | |
parent | eaf649e9fe6685f4c5a392cd0e16df5fd6660b7c (diff) |
Preempt-RCU: update RCU Documentation.
This patch updates the RCU documentation to reflect preemptible RCU as
well as recent publications.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Reviewed-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation/RCU/rcu.txt')
-rw-r--r-- | Documentation/RCU/rcu.txt | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/Documentation/RCU/rcu.txt b/Documentation/RCU/rcu.txt index f84407cba816..95821a29ae41 100644 --- a/Documentation/RCU/rcu.txt +++ b/Documentation/RCU/rcu.txt | |||
@@ -36,6 +36,14 @@ o How can the updater tell when a grace period has completed | |||
36 | executed in user mode, or executed in the idle loop, we can | 36 | executed in user mode, or executed in the idle loop, we can |
37 | safely free up that item. | 37 | safely free up that item. |
38 | 38 | ||
39 | Preemptible variants of RCU (CONFIG_PREEMPT_RCU) get the | ||
40 | same effect, but require that the readers manipulate CPU-local | ||
41 | counters. These counters allow limited types of blocking | ||
42 | within RCU read-side critical sections. SRCU also uses | ||
43 | CPU-local counters, and permits general blocking within | ||
44 | RCU read-side critical sections. These two variants of | ||
45 | RCU detect grace periods by sampling these counters. | ||
46 | |||
39 | o If I am running on a uniprocessor kernel, which can only do one | 47 | o If I am running on a uniprocessor kernel, which can only do one |
40 | thing at a time, why should I wait for a grace period? | 48 | thing at a time, why should I wait for a grace period? |
41 | 49 | ||
@@ -46,7 +54,10 @@ o How can I see where RCU is currently used in the Linux kernel? | |||
46 | Search for "rcu_read_lock", "rcu_read_unlock", "call_rcu", | 54 | Search for "rcu_read_lock", "rcu_read_unlock", "call_rcu", |
47 | "rcu_read_lock_bh", "rcu_read_unlock_bh", "call_rcu_bh", | 55 | "rcu_read_lock_bh", "rcu_read_unlock_bh", "call_rcu_bh", |
48 | "srcu_read_lock", "srcu_read_unlock", "synchronize_rcu", | 56 | "srcu_read_lock", "srcu_read_unlock", "synchronize_rcu", |
49 | "synchronize_net", and "synchronize_srcu". | 57 | "synchronize_net", "synchronize_srcu", and the other RCU |
58 | primitives. Or grab one of the cscope databases from: | ||
59 | |||
60 | http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html | ||
50 | 61 | ||
51 | o What guidelines should I follow when writing code that uses RCU? | 62 | o What guidelines should I follow when writing code that uses RCU? |
52 | 63 | ||
@@ -67,7 +78,11 @@ o I hear that RCU is patented? What is with that? | |||
67 | 78 | ||
68 | o I hear that RCU needs work in order to support realtime kernels? | 79 | o I hear that RCU needs work in order to support realtime kernels? |
69 | 80 | ||
70 | Yes, work in progress. | 81 | This work is largely completed. Realtime-friendly RCU can be |
82 | enabled via the CONFIG_PREEMPT_RCU kernel configuration parameter. | ||
83 | However, work is in progress for enabling priority boosting of | ||
84 | preempted RCU read-side critical sections.This is needed if you | ||
85 | have CPU-bound realtime threads. | ||
71 | 86 | ||
72 | o Where can I find more information on RCU? | 87 | o Where can I find more information on RCU? |
73 | 88 | ||