aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2023-04-19 22:00:23 +0000
committerGopher Robot <gobot@golang.org>2023-04-20 15:25:16 +0000
commit8588a3fa08c1eb320869781926f83d3928a7de4e (patch)
tree03e14896090cc438b8d4efa7f1047b020cc126b9 /src/runtime
parent4f9a966926e2537c435e60e75e5c866374be07e7 (diff)
downloadgo-8588a3fa08c1eb320869781926f83d3928a7de4e.tar.xz
runtime: initialize scavengeIndex fields properly
Currently these fields are uninitialized causing failures on aix-ppc64, which has a slightly oddly-defined address space compared to the rest. Change-Id: I2aa46731174154dce86c2074bd0b00eef955d86d Reviewed-on: https://go-review.googlesource.com/c/go/+/486655 Auto-Submit: Michael Knyszek <mknyszek@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Bypass: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/mgcscavenge.go7
-rw-r--r--src/runtime/mpagealloc.go3
2 files changed, 10 insertions, 0 deletions
diff --git a/src/runtime/mgcscavenge.go b/src/runtime/mgcscavenge.go
index 5976ab49cc..664c933733 100644
--- a/src/runtime/mgcscavenge.go
+++ b/src/runtime/mgcscavenge.go
@@ -1055,6 +1055,13 @@ type scavengeIndex struct {
test bool
}
+// init initializes the scavengeIndex.
+func (s *scavengeIndex) init() {
+ s.searchAddrBg.Clear()
+ s.searchAddrForce.Clear()
+ s.freeHWM = minOffAddr
+}
+
// find returns the highest chunk index that may contain pages available to scavenge.
// It also returns an offset to start searching in the highest chunk.
func (s *scavengeIndex) find(force bool) (chunkIdx, uint) {
diff --git a/src/runtime/mpagealloc.go b/src/runtime/mpagealloc.go
index da1b14e5a4..7c4d8ba2c9 100644
--- a/src/runtime/mpagealloc.go
+++ b/src/runtime/mpagealloc.go
@@ -321,6 +321,9 @@ func (p *pageAlloc) init(mheapLock *mutex, sysStat *sysMemStat, test bool) {
// Set the mheapLock.
p.mheapLock = mheapLock
+ // Initialize the scavenge index.
+ p.scav.index.init()
+
// Set if we're in a test.
p.test = test
p.scav.index.test = test