doc: Emphasize that "toy" RCU requires recursive rwlock
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 29 Mar 2017 02:57:45 +0000 (19:57 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 12 Apr 2017 15:23:43 +0000 (08:23 -0700)
Reported-by: "yangzc@uit.com.cn" <yangzc@uit.com.cn>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Documentation/RCU/whatisRCU.txt

index 6b0337008f9c7b535e2daca1d31b5d853f433784..8c131a1c62ea8e44bb28fa7fe4e71105621355cf 100644 (file)
@@ -562,7 +562,9 @@ This section presents a "toy" RCU implementation that is based on
 familiar locking primitives.  Its overhead makes it a non-starter for
 real-life use, as does its lack of scalability.  It is also unsuitable
 for realtime use, since it allows scheduling latency to "bleed" from
-one read-side critical section to another.
+one read-side critical section to another.  It also assumes recursive
+reader-writer locks:  If you try this with non-recursive locks, and
+you allow nested rcu_read_lock() calls, you can deadlock.
 
 However, it is probably the easiest implementation to relate to, so is
 a good starting point.