]> Cypherpunks repositories - gostls13.git/commit
runtime: stack allocator, separate from mallocgc
authorKeith Randall <khr@golang.org>
Tue, 1 Jul 2014 01:59:24 +0000 (18:59 -0700)
committerKeith Randall <khr@golang.org>
Tue, 1 Jul 2014 01:59:24 +0000 (18:59 -0700)
commit7c13860cd08352e785002cb97bd3baafd370e8bc
tree326e70940dba8dfd140cc67d69461d3e9ef488e6
parent54951023cb0a1743f7f3cb233ff424593bf1a131
runtime: stack allocator, separate from mallocgc

In order to move malloc to Go, we need to have a
separate stack allocator.  If we run out of stack
during malloc, malloc will not be available
to allocate a new stack.

Stacks are the last remaining FlagNoGC objects in the
GC heap.  Once they are out, we can get rid of the
distinction between the allocated/blockboundary bits.
(This will be in a separate change.)

Fixes #7468
Fixes #7424

LGTM=rsc, dvyukov
R=golang-codereviews, dvyukov, khr, dave, rsc
CC=golang-codereviews
https://golang.org/cl/104200047
src/pkg/runtime/malloc.h
src/pkg/runtime/mcache.c
src/pkg/runtime/mcentral.c
src/pkg/runtime/mem.go
src/pkg/runtime/mgc0.c
src/pkg/runtime/mheap.c
src/pkg/runtime/proc.c
src/pkg/runtime/runtime.h
src/pkg/runtime/stack.c
src/pkg/runtime/stack_test.go