diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-02-22 20:04:57 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-02-25 04:34:53 -0500 |
commit | c598a070bc581aea8a518b460dae8c0cf8e74344 (patch) | |
tree | a74f0323a7432ff836901ca301ca11870d73f940 /Documentation/RCU/whatisRCU.txt | |
parent | e7b0a61b7929632d36cf052d9e2820ef0a9c1bfe (diff) |
rcu: Documentation update for CONFIG_PROVE_RCU
Adds a lockdep.txt file and updates checklist.txt and
whatisRCU.txt to reflect the new lockdep-enabled capabilities of
RCU.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
LKML-Reference: <1266887105-1528-13-git-send-email-paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation/RCU/whatisRCU.txt')
-rw-r--r-- | Documentation/RCU/whatisRCU.txt | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt index 469a58b2e67e..1dc00ee97163 100644 --- a/Documentation/RCU/whatisRCU.txt +++ b/Documentation/RCU/whatisRCU.txt | |||
@@ -323,15 +323,17 @@ used as follows: | |||
323 | Defer Protect | 323 | Defer Protect |
324 | 324 | ||
325 | a. synchronize_rcu() rcu_read_lock() / rcu_read_unlock() | 325 | a. synchronize_rcu() rcu_read_lock() / rcu_read_unlock() |
326 | call_rcu() | 326 | call_rcu() rcu_dereference() |
327 | 327 | ||
328 | b. call_rcu_bh() rcu_read_lock_bh() / rcu_read_unlock_bh() | 328 | b. call_rcu_bh() rcu_read_lock_bh() / rcu_read_unlock_bh() |
329 | rcu_dereference_bh() | ||
329 | 330 | ||
330 | c. synchronize_sched() rcu_read_lock_sched() / rcu_read_unlock_sched() | 331 | c. synchronize_sched() rcu_read_lock_sched() / rcu_read_unlock_sched() |
331 | preempt_disable() / preempt_enable() | 332 | preempt_disable() / preempt_enable() |
332 | local_irq_save() / local_irq_restore() | 333 | local_irq_save() / local_irq_restore() |
333 | hardirq enter / hardirq exit | 334 | hardirq enter / hardirq exit |
334 | NMI enter / NMI exit | 335 | NMI enter / NMI exit |
336 | rcu_dereference_sched() | ||
335 | 337 | ||
336 | These three mechanisms are used as follows: | 338 | These three mechanisms are used as follows: |
337 | 339 | ||
@@ -781,9 +783,8 @@ Linux-kernel source code, but it helps to have a full list of the | |||
781 | APIs, since there does not appear to be a way to categorize them | 783 | APIs, since there does not appear to be a way to categorize them |
782 | in docbook. Here is the list, by category. | 784 | in docbook. Here is the list, by category. |
783 | 785 | ||
784 | RCU pointer/list traversal: | 786 | RCU list traversal: |
785 | 787 | ||
786 | rcu_dereference | ||
787 | list_for_each_entry_rcu | 788 | list_for_each_entry_rcu |
788 | hlist_for_each_entry_rcu | 789 | hlist_for_each_entry_rcu |
789 | hlist_nulls_for_each_entry_rcu | 790 | hlist_nulls_for_each_entry_rcu |
@@ -809,7 +810,7 @@ RCU: Critical sections Grace period Barrier | |||
809 | 810 | ||
810 | rcu_read_lock synchronize_net rcu_barrier | 811 | rcu_read_lock synchronize_net rcu_barrier |
811 | rcu_read_unlock synchronize_rcu | 812 | rcu_read_unlock synchronize_rcu |
812 | synchronize_rcu_expedited | 813 | rcu_dereference synchronize_rcu_expedited |
813 | call_rcu | 814 | call_rcu |
814 | 815 | ||
815 | 816 | ||
@@ -817,7 +818,7 @@ bh: Critical sections Grace period Barrier | |||
817 | 818 | ||
818 | rcu_read_lock_bh call_rcu_bh rcu_barrier_bh | 819 | rcu_read_lock_bh call_rcu_bh rcu_barrier_bh |
819 | rcu_read_unlock_bh synchronize_rcu_bh | 820 | rcu_read_unlock_bh synchronize_rcu_bh |
820 | synchronize_rcu_bh_expedited | 821 | rcu_dereference_bh synchronize_rcu_bh_expedited |
821 | 822 | ||
822 | 823 | ||
823 | sched: Critical sections Grace period Barrier | 824 | sched: Critical sections Grace period Barrier |
@@ -826,12 +827,14 @@ sched: Critical sections Grace period Barrier | |||
826 | rcu_read_unlock_sched call_rcu_sched | 827 | rcu_read_unlock_sched call_rcu_sched |
827 | [preempt_disable] synchronize_sched_expedited | 828 | [preempt_disable] synchronize_sched_expedited |
828 | [and friends] | 829 | [and friends] |
830 | rcu_dereference_sched | ||
829 | 831 | ||
830 | 832 | ||
831 | SRCU: Critical sections Grace period Barrier | 833 | SRCU: Critical sections Grace period Barrier |
832 | 834 | ||
833 | srcu_read_lock synchronize_srcu N/A | 835 | srcu_read_lock synchronize_srcu N/A |
834 | srcu_read_unlock synchronize_srcu_expedited | 836 | srcu_read_unlock synchronize_srcu_expedited |
837 | srcu_dereference | ||
835 | 838 | ||
836 | SRCU: Initialization/cleanup | 839 | SRCU: Initialization/cleanup |
837 | init_srcu_struct | 840 | init_srcu_struct |