aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/export_test.go
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2020-11-16 21:57:32 +0000
committerMichael Knyszek <mknyszek@google.com>2021-03-15 20:20:51 +0000
commitbd6aeca9686d5e672ffda1ea0cfeac7a3e7a20a4 (patch)
treeb79edac5b7bc53fbc20aaf5521ca466ab6f06bac /src/runtime/export_test.go
parenta9cfd55e2b09735a25976d1b008a0a3c767494f8 (diff)
downloadgo-bd6aeca9686d5e672ffda1ea0cfeac7a3e7a20a4.tar.gz
go-bd6aeca9686d5e672ffda1ea0cfeac7a3e7a20a4.zip
runtime: prepare arenas for use incrementally
This change moves the call of sysMap from (*mheap).sysAlloc into (*mheap).grow, so we only sysMap what we're going to use in the near future (thanks to the curArena mechanism). The purpose of this change is to better support systems with strict overcommit rules which generally accept reserved memory but not prepared memory (see malloc.go for exact descriptions of these states). This move requires changing linearAlloc to only optionally map memory. In one case, with mheap.heapArenaAlloc, we do want it to map memory. But now in the other case, with mheap.arena, we don't, because we want grow to take care of it. The risk with this change is we may make more syscalls than before on systems with 64 MiB arenas, but because heap growth is relatively rare this is unlikely to be a noticable issue. We also bound the amount of syscalls made by only extending curArena (and thus mapping) by pallocChunkPages*pageSize which is 4 MiB. Fixes #42612. Change-Id: I736df696afe78ddb1a747a896caa0db8726027e5 Reviewed-on: https://go-review.googlesource.com/c/go/+/270537 Trust: Michael Knyszek <mknyszek@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/runtime/export_test.go')
-rw-r--r--src/runtime/export_test.go3
1 files changed, 0 insertions, 3 deletions
diff --git a/src/runtime/export_test.go b/src/runtime/export_test.go
index 195b7b0519..c03cf136f2 100644
--- a/src/runtime/export_test.go
+++ b/src/runtime/export_test.go
@@ -404,9 +404,6 @@ func ReadMemStatsSlow() (base, slow MemStats) {
slow.HeapReleased += uint64(pg) * pageSize
}
- // Unused space in the current arena also counts as released space.
- slow.HeapReleased += uint64(mheap_.curArena.end - mheap_.curArena.base)
-
getg().m.mallocing--
})