aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/stack.h
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-08-30 00:56:52 -0400
committerRuss Cox <rsc@golang.org>2014-08-30 00:56:52 -0400
commit397bdb216f705a3e3221c98904237820d4950042 (patch)
tree4bbe8e737963a97bfc27e3ddcf67b93924b8d66c /src/pkg/runtime/stack.h
parent0316dafda26619175f35e5e89f1920ebf37c85a3 (diff)
downloadgo-397bdb216f705a3e3221c98904237820d4950042.tar.xz
runtime: increase nosplit area to 192
In CL 131450043, which raised it to 160, I'd raise it to 192 if necessary. Apparently it is necessary on windows/amd64. One note for those concerned about the growth: in the old segmented stack world, we wasted this much space at the bottom of every stack segment. In the new contiguous stack world, each goroutine has only one stack segment, so we only waste this much space once per goroutine. So even raising the limit further might still be a net savings. Fixes windows/amd64 build. TBR=r CC=golang-codereviews https://golang.org/cl/132480043
Diffstat (limited to 'src/pkg/runtime/stack.h')
-rw-r--r--src/pkg/runtime/stack.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pkg/runtime/stack.h b/src/pkg/runtime/stack.h
index b2de78d898..dc9da74887 100644
--- a/src/pkg/runtime/stack.h
+++ b/src/pkg/runtime/stack.h
@@ -47,7 +47,7 @@ above checks (without allocating a full frame), which might trigger
a call to morestack. This sequence needs to fit in the bottom
section of the stack. On amd64, morestack's frame is 40 bytes, and
deferproc's frame is 56 bytes. That fits well within the
-StackGuard - StackSmall = 128 bytes at the bottom.
+StackGuard - StackSmall bytes at the bottom.
The linkers explore all possible call traces involving non-splitting
functions to make sure that this limit cannot be violated.
*/
@@ -94,7 +94,7 @@ enum {
// After a stack split check the SP is allowed to be this
// many bytes below the stack guard. This saves an instruction
// in the checking sequence for tiny frames.
- StackSmall = 96,
+ StackSmall = 64,
// The maximum number of bytes that a chain of NOSPLIT
// functions can use.