From 8ac98e7b3fcadc497c4ca7d8637ba9578e8159be Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Fri, 27 Dec 2019 16:48:23 +0000 Subject: runtime: add scavtrace debug flag and remove scavenge info from gctrace Currently, scavenging information is printed if the gctrace debug variable is >0. Scavenging information is also printed naively, for every page scavenged, resulting in a lot of noise when the typical expectation for GC trace is one line per GC. This change adds a new GODEBUG flag called scavtrace which prints scavenge information roughly once per GC cycle and removes any scavenge information from gctrace. The exception is debug.FreeOSMemory, which may force an additional line to be printed. Fixes #32952. Change-Id: I4177dcb85fe3f9653fd74297ea93c97c389c1811 Reviewed-on: https://go-review.googlesource.com/c/go/+/212640 Run-TryBot: Michael Knyszek Reviewed-by: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mpagealloc.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/runtime/mpagealloc.go') diff --git a/src/runtime/mpagealloc.go b/src/runtime/mpagealloc.go index 572e6a9bc5..3c3921ea5e 100644 --- a/src/runtime/mpagealloc.go +++ b/src/runtime/mpagealloc.go @@ -240,6 +240,11 @@ type pageAlloc struct { // The address to start a scavenge candidate search with. scavAddr uintptr + // The amount of memory scavenged since the last scavtrace print. + // + // Read and updated atomically. + scavReleased uintptr + // start and end represent the chunk indices // which pageAlloc knows about. It assumes // chunks in the range [start, end) are -- cgit v1.3-5-g9baa