aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/RCU/Design
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-10-07 18:43:31 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-12-05 15:33:11 -0500
commit0825458b1dbc39ec6840ee2e45b1fedb1b4b4ca1 (patch)
treeaff096c6b091577d0bf8eb0a0ab3efb6390ad152 /Documentation/RCU/Design
parent01d3ad3834891f19a2620a105415feac93296eeb (diff)
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/Design')
-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
1495kernel. 1495kernel.
1496 1496
1497<p> 1497<p>
1498It is worth noting that RCU is not alone in limiting composability.
1499For example, many transactional-memory implementations prohibit
1500composing a pair of transactions separated by an irrevocable
1501operation (for example, a network receive operation).
1502For another example, lock-based critical sections can be composed
1503surprisingly freely, but only if deadlock is avoided.
1504
1505<p>
1498In short, although RCU read-side critical sections are highly composable, 1506In short, although RCU read-side critical sections are highly composable,
1499care is required in some situations, just as is the case for any other 1507care is required in some situations, just as is the case for any other
1500composable synchronization mechanism. 1508composable 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
1654kernel. 1654kernel.
1655 1655
1656<p> 1656<p>
1657It is worth noting that RCU is not alone in limiting composability.
1658For example, many transactional-memory implementations prohibit
1659composing a pair of transactions separated by an irrevocable
1660operation (for example, a network receive operation).
1661For another example, lock-based critical sections can be composed
1662surprisingly freely, but only if deadlock is avoided.
1663
1664<p>
1657In short, although RCU read-side critical sections are highly composable, 1665In short, although RCU read-side critical sections are highly composable,
1658care is required in some situations, just as is the case for any other 1666care is required in some situations, just as is the case for any other
1659composable synchronization mechanism. 1667composable synchronization mechanism.