diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-03-12 19:54:14 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-06-10 16:45:25 -0400 |
commit | 99f88919f8fa8a8b01b5306c59c9977b94604df8 (patch) | |
tree | 8e92937651258199944fed1ae2b612f0f693be00 /Documentation/RCU/whatisRCU.txt | |
parent | efc151c33b971148894789dc7c5589dec46d4348 (diff) |
rcu: Remove srcu_read_lock_raw() and srcu_read_unlock_raw().
These interfaces never did get used, so this commit removes them,
their rcutorture tests, and documentation referencing them.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'Documentation/RCU/whatisRCU.txt')
-rw-r--r-- | Documentation/RCU/whatisRCU.txt | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt index 10df0b82f459..0f0fb7c432c2 100644 --- a/Documentation/RCU/whatisRCU.txt +++ b/Documentation/RCU/whatisRCU.txt | |||
@@ -842,9 +842,7 @@ SRCU: Critical sections Grace period Barrier | |||
842 | 842 | ||
843 | srcu_read_lock synchronize_srcu srcu_barrier | 843 | srcu_read_lock synchronize_srcu srcu_barrier |
844 | srcu_read_unlock call_srcu | 844 | srcu_read_unlock call_srcu |
845 | srcu_read_lock_raw synchronize_srcu_expedited | 845 | srcu_dereference synchronize_srcu_expedited |
846 | srcu_read_unlock_raw | ||
847 | srcu_dereference | ||
848 | 846 | ||
849 | SRCU: Initialization/cleanup | 847 | SRCU: Initialization/cleanup |
850 | init_srcu_struct | 848 | init_srcu_struct |
@@ -865,38 +863,32 @@ list can be helpful: | |||
865 | 863 | ||
866 | a. Will readers need to block? If so, you need SRCU. | 864 | a. Will readers need to block? If so, you need SRCU. |
867 | 865 | ||
868 | b. Is it necessary to start a read-side critical section in a | 866 | b. What about the -rt patchset? If readers would need to block |
869 | hardirq handler or exception handler, and then to complete | ||
870 | this read-side critical section in the task that was | ||
871 | interrupted? If so, you need SRCU's srcu_read_lock_raw() and | ||
872 | srcu_read_unlock_raw() primitives. | ||
873 | |||
874 | c. What about the -rt patchset? If readers would need to block | ||
875 | in an non-rt kernel, you need SRCU. If readers would block | 867 | in an non-rt kernel, you need SRCU. If readers would block |
876 | in a -rt kernel, but not in a non-rt kernel, SRCU is not | 868 | in a -rt kernel, but not in a non-rt kernel, SRCU is not |
877 | necessary. | 869 | necessary. |
878 | 870 | ||
879 | d. Do you need to treat NMI handlers, hardirq handlers, | 871 | c. Do you need to treat NMI handlers, hardirq handlers, |
880 | and code segments with preemption disabled (whether | 872 | and code segments with preemption disabled (whether |
881 | via preempt_disable(), local_irq_save(), local_bh_disable(), | 873 | via preempt_disable(), local_irq_save(), local_bh_disable(), |
882 | or some other mechanism) as if they were explicit RCU readers? | 874 | or some other mechanism) as if they were explicit RCU readers? |
883 | If so, RCU-sched is the only choice that will work for you. | 875 | If so, RCU-sched is the only choice that will work for you. |
884 | 876 | ||
885 | e. Do you need RCU grace periods to complete even in the face | 877 | d. Do you need RCU grace periods to complete even in the face |
886 | of softirq monopolization of one or more of the CPUs? For | 878 | of softirq monopolization of one or more of the CPUs? For |
887 | example, is your code subject to network-based denial-of-service | 879 | example, is your code subject to network-based denial-of-service |
888 | attacks? If so, you need RCU-bh. | 880 | attacks? If so, you need RCU-bh. |
889 | 881 | ||
890 | f. Is your workload too update-intensive for normal use of | 882 | e. Is your workload too update-intensive for normal use of |
891 | RCU, but inappropriate for other synchronization mechanisms? | 883 | RCU, but inappropriate for other synchronization mechanisms? |
892 | If so, consider SLAB_DESTROY_BY_RCU. But please be careful! | 884 | If so, consider SLAB_DESTROY_BY_RCU. But please be careful! |
893 | 885 | ||
894 | g. Do you need read-side critical sections that are respected | 886 | f. Do you need read-side critical sections that are respected |
895 | even though they are in the middle of the idle loop, during | 887 | even though they are in the middle of the idle loop, during |
896 | user-mode execution, or on an offlined CPU? If so, SRCU is the | 888 | user-mode execution, or on an offlined CPU? If so, SRCU is the |
897 | only choice that will work for you. | 889 | only choice that will work for you. |
898 | 890 | ||
899 | h. Otherwise, use RCU. | 891 | g. Otherwise, use RCU. |
900 | 892 | ||
901 | Of course, this all assumes that you have determined that RCU is in fact | 893 | Of course, this all assumes that you have determined that RCU is in fact |
902 | the right tool for your job. | 894 | the right tool for your job. |