diff options
author | Michael Anthony Knyszek <mknyszek@google.com> | 2021-10-18 23:12:16 +0000 |
---|---|---|
committer | Michael Knyszek <mknyszek@google.com> | 2021-10-20 20:39:33 +0000 |
commit | a91e976fd2cc6f1c156877eae40262d7e47c745c (patch) | |
tree | 2a63625f5b3b41dc6b7aa98b39c55f6c45099b4b /src/runtime/mgc.go | |
parent | 1dff8f0a056517f0a8adfda663402ffb2e089281 (diff) | |
download | go-a91e976fd2cc6f1c156877eae40262d7e47c745c.tar.gz go-a91e976fd2cc6f1c156877eae40262d7e47c745c.zip |
runtime: retype mheap.reclaimIndex as atomic.Uint64
[git-generate]
cd src/runtime
mv export_test.go export.go
GOROOT=$(dirname $(dirname $PWD)) rf '
add mheap.reclaimIndex \
// reclaimIndex is the page index in allArenas of next page to \
// reclaim. Specifically, it refers to page (i % \
// pagesPerArena) of arena allArenas[i / pagesPerArena]. \
// \
// If this is >= 1<<63, the page reclaimer is done scanning \
// the page marks. \
reclaimIndex_ atomic.Uint64
ex {
import "runtime/internal/atomic"
var t mheap
var v, w uint64
var d int64
t.reclaimIndex -> t.reclaimIndex_.Load()
t.reclaimIndex = v -> t.reclaimIndex_.Store(v)
atomic.Load64(&t.reclaimIndex) -> t.reclaimIndex_.Load()
atomic.LoadAcq64(&t.reclaimIndex) -> t.reclaimIndex_.LoadAcquire()
atomic.Store64(&t.reclaimIndex, v) -> t.reclaimIndex_.Store(v)
atomic.StoreRel64(&t.reclaimIndex, v) -> t.reclaimIndex_.StoreRelease(v)
atomic.Cas64(&t.reclaimIndex, v, w) -> t.reclaimIndex_.CompareAndSwap(v, w)
atomic.Xchg64(&t.reclaimIndex, v) -> t.reclaimIndex_.Swap(v)
atomic.Xadd64(&t.reclaimIndex, d) -> t.reclaimIndex_.Add(d)
}
rm mheap.reclaimIndex
mv mheap.reclaimIndex_ mheap.reclaimIndex
'
mv export.go export_test.go
Change-Id: I1d619e3ac032285b5f7eb6c563a5188c8e36d089
Reviewed-on: https://go-review.googlesource.com/c/go/+/356711
Reviewed-by: Austin Clements <austin@google.com>
Trust: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/runtime/mgc.go')
-rw-r--r-- | src/runtime/mgc.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 654fa4118a..56ef1c4e38 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -1459,7 +1459,7 @@ func gcSweep(mode gcMode) { mheap_.sweepDrained = 0 mheap_.pagesSwept.Store(0) mheap_.sweepArenas = mheap_.allArenas - mheap_.reclaimIndex = 0 + mheap_.reclaimIndex.Store(0) mheap_.reclaimCredit = 0 unlock(&mheap_.lock) |