]> Cypherpunks repositories - gostls13.git/commit
runtime: stop scanning stack frames/args conservatively
authorRuss Cox <rsc@golang.org>
Fri, 12 Sep 2014 11:46:11 +0000 (07:46 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 12 Sep 2014 11:46:11 +0000 (07:46 -0400)
commite844f53a0198e81b359d198fc0dcf15cf01d6ed1
tree61fa2ae1685cb6f7ebc6d89d95d35dd0b830bd31
parenta7c6d89166fd7bf6c9af6013cbfaa21971ba28f0
runtime: stop scanning stack frames/args conservatively

The goal here is to commit fully to having precise information
about stack frames. If we need information we don't have,
crash instead of assuming we should scan conservatively.

Since the stack copying assumes fully precise information,
any crashes during garbage collection that are introduced by
this CL are crashes that could have happened during stack
copying instead. Those are harder to find because stacks are
copied much less often than the garbage collector is invoked.

In service of that goal, remove ARGSIZE macros from
asm_*.s, change switchtoM to have no arguments
(it doesn't have any live arguments), and add
args and locals information to some frames that
can call back into Go.

LGTM=khr
R=khr, rlh
CC=golang-codereviews
https://golang.org/cl/137540043
src/runtime/asm_386.s
src/runtime/asm_amd64.s
src/runtime/asm_amd64p32.s
src/runtime/asm_arm.s
src/runtime/mgc0.c
src/runtime/runtime.h
src/runtime/symtab.go
src/runtime/traceback.go