numa: update Documentation/vm/numa, add memoryless node info
[safe/jmp/linux-2.6] / Documentation / RCU / rcu.txt
index 6fa0922..3185270 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?
 
@@ -45,7 +53,11 @@ o    How can I see where RCU is currently used in the Linux kernel?
 
        Search for "rcu_read_lock", "rcu_read_unlock", "call_rcu",
        "rcu_read_lock_bh", "rcu_read_unlock_bh", "call_rcu_bh",
-       "synchronize_rcu", and "synchronize_net".
+       "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?
 
@@ -63,10 +75,16 @@ o   I hear that RCU is patented?  What is with that?
        search for the string "Patent" in RTFP.txt to find them.
        Of these, one was allowed to lapse by the assignee, and the
        others have been contributed to the Linux kernel under GPL.
+       There are now also LGPL implementations of user-level RCU
+       available (http://lttng.org/?q=node/18).
 
 o      I hear that RCU needs work in order to support realtime kernels?
 
-       Yes, work in progress.
+       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?
 
@@ -75,43 +93,4 @@ o    Where can I find more information on 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!
-
-       whatisRCU.txt
-
-               Overview of how the RCU implementation works.  Along
-               the way, presents a conceptual view of RCU.
+       See 00-INDEX for the list.