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>
This commit is contained in:
Michael Anthony Knyszek 2023-04-19 22:00:23 +00:00 committed by Gopher Robot
parent 4f9a966926
commit 8588a3fa08
2 changed files with 10 additions and 0 deletions

View file

@ -1055,6 +1055,13 @@ type scavengeIndex struct {
test bool 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. // 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. // It also returns an offset to start searching in the highest chunk.
func (s *scavengeIndex) find(force bool) (chunkIdx, uint) { func (s *scavengeIndex) find(force bool) (chunkIdx, uint) {

View file

@ -321,6 +321,9 @@ func (p *pageAlloc) init(mheapLock *mutex, sysStat *sysMemStat, test bool) {
// Set the mheapLock. // Set the mheapLock.
p.mheapLock = mheapLock p.mheapLock = mheapLock
// Initialize the scavenge index.
p.scav.index.init()
// Set if we're in a test. // Set if we're in a test.
p.test = test p.test = test
p.scav.index.test = test p.scav.index.test = test