Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / Documentation / RCU / whatisRCU.txt
index 318df44..07cb93b 100644 (file)
@@ -184,17 +184,7 @@ synchronize_rcu()
        blocking, it registers a function and argument which are invoked
        after all ongoing RCU read-side critical sections have completed.
        This callback variant is particularly useful in situations where
-       it is illegal to block or where update-side performance is
-       critically important.
-
-       However, the call_rcu() API should not be used lightly, as use
-       of the synchronize_rcu() API generally results in simpler code.
-       In addition, the synchronize_rcu() API has the nice property
-       of automatically limiting update rate should grace periods
-       be delayed.  This property results in system resilience in face
-       of denial-of-service attacks.  Code using call_rcu() should limit
-       update rate in order to gain this same sort of resilience.  See
-       checklist.txt for some approaches to limiting the update rate.
+       it is illegal to block.
 
 rcu_assign_pointer()
 
@@ -687,9 +677,8 @@ diff shows how closely related RCU and reader-writer locking can be.
        +       spin_lock(&listmutex);
                list_for_each_entry(p, head, lp) {
                        if (p->key == key) {
-       -                       list_del(&p->list);
+                               list_del(&p->list);
        -                       write_unlock(&listmutex);
-       +                       list_del_rcu(&p->list);
        +                       spin_unlock(&listmutex);
        +                       synchronize_rcu();
                                kfree(p);
@@ -737,7 +726,7 @@ Or, for those who prefer a side-by-side listing:
  5   write_lock(&listmutex);            5   spin_lock(&listmutex);
  6   list_for_each_entry(p, head, lp) { 6   list_for_each_entry(p, head, lp) {
  7     if (p->key == key) {             7     if (p->key == key) {
- 8       list_del(&p->list);            8       list_del_rcu(&p->list);
+ 8       list_del(&p->list);            8       list_del(&p->list);
  9       write_unlock(&listmutex);      9       spin_unlock(&listmutex);
                                        10       synchronize_rcu();
 10       kfree(p);                     11       kfree(p);
@@ -801,6 +790,7 @@ RCU pointer update:
 
 RCU grace period:
 
+       synchronize_kernel (deprecated)
        synchronize_net
        synchronize_sched
        synchronize_rcu