rcu: Remove CONFIG_PREEMPT_RCU
[safe/jmp/linux-2.6] / Documentation / RCU / rcu.txt
index 7e0c2ab..2a23523 100644 (file)
@@ -36,6 +36,14 @@ o    How can the updater tell when a grace period has completed
        executed in user mode, or executed in the idle loop, we can
        safely free up that item.
 
+       Preemptible variants of RCU (CONFIG_TREE_PREEMPT_RCU) get the
+       same effect, but require that the readers manipulate CPU-local
+       counters.  These counters allow limited types of blocking
+       within RCU read-side critical sections.  SRCU also uses
+       CPU-local counters, and permits general blocking within
+       RCU read-side critical sections.  These two variants of
+       RCU detect grace periods by sampling these counters.
+
 o      If I am running on a uniprocessor kernel, which can only do one
        thing at a time, why should I wait for a grace period?
 
@@ -43,7 +51,13 @@ o    If I am running on a uniprocessor kernel, which can only do one
 
 o      How can I see where RCU is currently used in the Linux kernel?
 
-       Search for "rcu_read_lock", "call_rcu", and "synchronize_kernel".
+       Search for "rcu_read_lock", "rcu_read_unlock", "call_rcu",
+       "rcu_read_lock_bh", "rcu_read_unlock_bh", "call_rcu_bh",
+       "srcu_read_lock", "srcu_read_unlock", "synchronize_rcu",
+       "synchronize_net", "synchronize_srcu", and the other RCU
+       primitives.  Or grab one of the cscope databases from:
+
+       http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html
 
 o      What guidelines should I follow when writing code that uses RCU?
 
@@ -62,6 +76,63 @@ o    I hear that RCU is patented?  What is with that?
        Of these, one was allowed to lapse by the assignee, and the
        others have been contributed to the Linux kernel under GPL.
 
+o      I hear that RCU needs work in order to support realtime kernels?
+
+       This work is largely completed.  Realtime-friendly RCU can be
+       enabled via the CONFIG_TREE_PREEMPT_RCU kernel configuration
+       parameter.  However, work is in progress for enabling priority
+       boosting of preempted RCU read-side critical sections.  This is
+       needed if you have CPU-bound realtime threads.
+
 o      Where can I find more information on RCU?
 
        See the RTFP.txt file in this directory.
+       Or point your browser at http://www.rdrop.com/users/paulmck/RCU/.
+
+o      What are all these files in this directory?
+
+
+       NMI-RCU.txt
+
+               Describes how to use RCU to implement dynamic
+               NMI handlers, which can be revectored on the fly,
+               without rebooting.
+
+       RTFP.txt
+
+               List of RCU-related publications and web sites.
+
+       UP.txt
+
+               Discussion of RCU usage in UP kernels.
+
+       arrayRCU.txt
+
+               Describes how to use RCU to protect arrays, with
+               resizeable arrays whose elements reference other
+               data structures being of the most interest.
+
+       checklist.txt
+
+               Lists things to check for when inspecting code that
+               uses RCU.
+
+       listRCU.txt
+
+               Describes how to use RCU to protect linked lists.
+               This is the simplest and most common use of RCU
+               in the Linux kernel.
+
+       rcu.txt
+
+               You are reading it!
+
+       rcuref.txt
+
+               Describes how to combine use of reference counts
+               with RCU.
+
+       whatisRCU.txt
+
+               Overview of how the RCU implementation works.  Along
+               the way, presents a conceptual view of RCU.