From a3e90dc3775307e5f0de0e2c0726841c17363616 Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Wed, 17 May 2023 16:36:07 +0000 Subject: runtime: add eager scavenging details to GODEBUG=scavtrace=1 Also, clean up atomics on released-per-cycle while we're here. For #57069. Change-Id: I14026e8281f01dea1e8c8de6aa8944712b7b24d9 Reviewed-on: https://go-review.googlesource.com/c/go/+/495916 Reviewed-by: Michael Pratt Run-TryBot: Michael Knyszek TryBot-Result: Gopher Robot --- src/runtime/mpagealloc.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/runtime/mpagealloc.go') diff --git a/src/runtime/mpagealloc.go b/src/runtime/mpagealloc.go index 12ae474a4d..ed53a5672b 100644 --- a/src/runtime/mpagealloc.go +++ b/src/runtime/mpagealloc.go @@ -48,6 +48,7 @@ package runtime import ( + "runtime/internal/atomic" "unsafe" ) @@ -270,10 +271,13 @@ type pageAlloc struct { // scavenge. index scavengeIndex - // released is the amount of memory released this scavenge cycle. - // - // Updated atomically. - released uintptr + // releasedBg is the amount of memory released in the background this + // scavenge cycle. + releasedBg atomic.Uintptr + + // releasedEager is the amount of memory released eagerly this scavenge + // cycle. + releasedEager atomic.Uintptr } // mheap_.lock. This level of indirection makes it possible -- cgit v1.3-5-g9baa