Remove static variable from runtime·oldstack().
Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz)
are as follows (with CL
4657091 applied):
benchmark old ns/op new ns/op delta
BenchmarkStackGrowth 1183.00 1180.00 -0.25%
BenchmarkStackGrowth-2 1249.00 1211.00 -3.04%
BenchmarkStackGrowth-4 954.00 805.00 -15.62%
BenchmarkStackGrowth-8 701.00 683.00 -2.57%
BenchmarkStackGrowth-16 465.00 415.00 -10.75%
R=rsc
CC=golang-dev
https://golang.org/cl/
4693042
uint32 argsize;
byte *sp;
G *g1;
- static int32 goid;
+ int32 goid;
//printf("oldstack m->cret=%p\n", m->cret);
runtime·mcpy(top->argp, sp, argsize);
}
goid = old.gobuf.g->goid; // fault if g is bad, before gogo
+ USED(goid);
if(old.free != 0)
runtime·stackfree(g1->stackguard - StackGuard, old.free);