]> Cypherpunks repositories - gostls13.git/commit
runtime: move stack shrinking until after sweepgen is incremented.
authorKeith Randall <khr@golang.org>
Thu, 27 Feb 2014 22:20:15 +0000 (14:20 -0800)
committerKeith Randall <khr@golang.org>
Thu, 27 Feb 2014 22:20:15 +0000 (14:20 -0800)
commite9445547b6d04edc358ae60e2eb29db88fd67654
tree34018debe42d8b3a0ef88ffd1c3b040ffbf52a88
parent0399b971d9ea0e061fb1361b448f9a8188ee2336
runtime: move stack shrinking until after sweepgen is incremented.

Before GC, we flush all the per-P allocation caches.  Doing
stack shrinking mid-GC causes these caches to fill up.  At the
end of gc, the sweepgen is incremented which causes all of the
data in these caches to be in a bad state (cached but not yet
swept).

Move the stack shrinking until after sweepgen is incremented,
so any caching that happens as part of shrinking is done with
already-swept data.

Reenable stack copying.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/69620043
src/pkg/runtime/mgc0.c
src/pkg/runtime/proc.c