summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-04-27 13:25:41 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-06-08 08:25:34 -0700
commitc75e9caaf85f1fc4ed32e510b259d67ec3c4c603 (patch)
treec06e50d3835cb43a96f377a37b81064a99609166
parent09f501a0f0b5ad81f79049a31fb71f99f282d663 (diff)
downloadlinux-c75e9caaf85f1fc4ed32e510b259d67ec3c4c603.tar.gz
linux-c75e9caaf85f1fc4ed32e510b259d67ec3c4c603.tar.bz2
linux-c75e9caaf85f1fc4ed32e510b259d67ec3c4c603.zip
doc: Take tail recursion into account in RCU requirements
This commit classifies tail recursion as an alternative way to write a loop, with similar limitations. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--Documentation/RCU/Design/Requirements/Requirements.html3
1 files changed, 2 insertions, 1 deletions
diff --git a/Documentation/RCU/Design/Requirements/Requirements.html b/Documentation/RCU/Design/Requirements/Requirements.html
index 8bbf0bb18389..cb614f2a69c2 100644
--- a/Documentation/RCU/Design/Requirements/Requirements.html
+++ b/Documentation/RCU/Design/Requirements/Requirements.html
@@ -1849,7 +1849,8 @@ mass storage, or user patience, whichever comes first.
If the nesting is not visible to the compiler, as is the case with
mutually recursive functions each in its own translation unit,
stack overflow will result.
-If the nesting takes the form of loops, either the control variable
+If the nesting takes the form of loops, perhaps in the guise of tail
+recursion, either the control variable
will overflow or (in the Linux kernel) you will get an RCU CPU stall warning.
Nevertheless, this class of RCU implementations is one
of the most composable constructs in existence.