diff options
| author | Michael Anthony Knyszek <mknyszek@google.com> | 2023-04-19 22:00:23 +0000 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-04-20 15:25:16 +0000 |
| commit | 8588a3fa08c1eb320869781926f83d3928a7de4e (patch) | |
| tree | 03e14896090cc438b8d4efa7f1047b020cc126b9 /src/runtime | |
| parent | 4f9a966926e2537c435e60e75e5c866374be07e7 (diff) | |
| download | go-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.go | 7 | ||||
| -rw-r--r-- | src/runtime/mpagealloc.go | 3 |
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 |
