• Austin Clements's avatar
    runtime: steal space for stack barrier tracking from stack · 3f6e69ac
    Austin Clements authored
    The stack barrier code will need a bookkeeping structure to keep track
    of the overwritten return PCs. This commit introduces and allocates
    this structure, but does not yet use the structure.
    
    We don't want to allocate space for this structure during garbage
    collection, so this commit allocates it along with the allocation of
    the corresponding stack. However, we can't do a regular allocation in
    newstack because mallocgc may itself grow the stack (which would lead
    to a recursive allocation). Hence, this commit makes the bookkeeping
    structure part of the stack allocation itself by stealing the
    necessary space from the top of the stack allocation. Since the size
    of this bookkeeping structure is logarithmic in the size of the stack,
    this has minimal impact on stack behavior.
    
    Change-Id: Ia14408be06aafa9ca4867f4e70bddb3fe0e96665
    Reviewed-on: https://go-review.googlesource.com/10313Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    3f6e69ac
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...