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