mirror of
https://github.com/golang/go.git
synced 2025-11-11 14:11:04 +00:00
runtime: assume precisestack, copystack, StackCopyAlways, ScanStackByFrames
Commit to stack copying for stack growth. We're carrying around a surprising amount of cruft from older schemes. I am confident that precise stack scans and stack copying are here to stay. Delete fallback code for when precise stack info is disabled. Delete fallback code for when copying stacks is disabled. Delete fallback code for when StackCopyAlways is disabled. Delete Stktop chain - there is only one stack segment now. Delete M.moreargp, M.moreargsize, M.moreframesize, M.cret. Delete G.writenbuf (unrelated, just dead). Delete runtime.lessstack, runtime.oldstack. Delete many amd64 morestack variants. Delete initialization of morestack frame/arg sizes (shortens split prologue!). Replace G's stackguard/stackbase/stack0/stacksize/ syscallstack/syscallguard/forkstackguard with simple stack bounds (lo, hi). Update liblink, runtime/cgo for adjustments to G. LGTM=khr R=khr, bradfitz CC=golang-codereviews, iant, r https://golang.org/cl/137410043
This commit is contained in:
parent
d72029e3a3
commit
15b76ad94b
50 changed files with 359 additions and 2894 deletions
|
|
@ -136,7 +136,7 @@ func mallocgc(size uintptr, typ *_type, flags int) unsafe.Pointer {
|
|||
}
|
||||
mp.mallocing = 0
|
||||
if mp.curg != nil {
|
||||
mp.curg.stackguard0 = mp.curg.stackguard
|
||||
mp.curg.stackguard0 = mp.curg.stack.lo + _StackGuard
|
||||
}
|
||||
// Note: one releasem for the acquirem just above.
|
||||
// The other for the acquirem at start of malloc.
|
||||
|
|
@ -313,7 +313,7 @@ marked:
|
|||
}
|
||||
mp.mallocing = 0
|
||||
if mp.curg != nil {
|
||||
mp.curg.stackguard0 = mp.curg.stackguard
|
||||
mp.curg.stackguard0 = mp.curg.stack.lo + _StackGuard
|
||||
}
|
||||
// Note: one releasem for the acquirem just above.
|
||||
// The other for the acquirem at start of malloc.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue