summaryrefslogtreecommitdiff
path: root/Documentation/RCU
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-10-07 15:43:31 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-12-05 12:33:11 -0800
commit0825458b1dbc39ec6840ee2e45b1fedb1b4b4ca1 (patch)
treeaff096c6b091577d0bf8eb0a0ab3efb6390ad152 /Documentation/RCU
parent01d3ad3834891f19a2620a105415feac93296eeb (diff)
downloadlwn-0825458b1dbc39ec6840ee2e45b1fedb1b4b4ca1.tar.gz
lwn-0825458b1dbc39ec6840ee2e45b1fedb1b4b4ca1.zip
documentation: Composability analogies
This commit expands on RCU's composability by comparing it to that of transactional memory and of locking. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r--Documentation/RCU/Design/Requirements/Requirements.html8
-rw-r--r--Documentation/RCU/Design/Requirements/Requirements.htmlx8
2 files changed, 16 insertions, 0 deletions
diff --git a/Documentation/RCU/Design/Requirements/Requirements.html b/Documentation/RCU/Design/Requirements/Requirements.html
index cc5b587c0ec5..105247149975 100644
--- a/Documentation/RCU/Design/Requirements/Requirements.html
+++ b/Documentation/RCU/Design/Requirements/Requirements.html
@@ -1495,6 +1495,14 @@ section, neither of which is conducive to a long-lived and prosperous
kernel.
<p>
+It is worth noting that RCU is not alone in limiting composability.
+For example, many transactional-memory implementations prohibit
+composing a pair of transactions separated by an irrevocable
+operation (for example, a network receive operation).
+For another example, lock-based critical sections can be composed
+surprisingly freely, but only if deadlock is avoided.
+
+<p>
In short, although RCU read-side critical sections are highly composable,
care is required in some situations, just as is the case for any other
composable synchronization mechanism.
diff --git a/Documentation/RCU/Design/Requirements/Requirements.htmlx b/Documentation/RCU/Design/Requirements/Requirements.htmlx
index 23524d75a3c3..5b76e21fa092 100644
--- a/Documentation/RCU/Design/Requirements/Requirements.htmlx
+++ b/Documentation/RCU/Design/Requirements/Requirements.htmlx
@@ -1654,6 +1654,14 @@ section, neither of which is conducive to a long-lived and prosperous
kernel.
<p>
+It is worth noting that RCU is not alone in limiting composability.
+For example, many transactional-memory implementations prohibit
+composing a pair of transactions separated by an irrevocable
+operation (for example, a network receive operation).
+For another example, lock-based critical sections can be composed
+surprisingly freely, but only if deadlock is avoided.
+
+<p>
In short, although RCU read-side critical sections are highly composable,
care is required in some situations, just as is the case for any other
composable synchronization mechanism.