mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: remove periodic scavenging
This change removes the periodic scavenger which goes over every span in the heap and scavenges it if it hasn't been used for 5 minutes. It should no longer be necessary if we have background scavenging (follow-up). For #30333. Change-Id: Ic3a1a4e85409dc25719ba4593a3b60273a4c71e0 Reviewed-on: https://go-review.googlesource.com/c/go/+/143157 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
d56199d68e
commit
eaa1c87b00
2 changed files with 34 additions and 77 deletions
|
|
@ -4282,19 +4282,6 @@ func sysmon() {
|
|||
checkdead()
|
||||
unlock(&sched.lock)
|
||||
|
||||
// If a heap span goes unused for 5 minutes after a garbage collection,
|
||||
// we hand it back to the operating system.
|
||||
scavengelimit := int64(5 * 60 * 1e9)
|
||||
|
||||
if debug.scavenge > 0 {
|
||||
// Scavenge-a-lot for testing.
|
||||
forcegcperiod = 10 * 1e6
|
||||
scavengelimit = 20 * 1e6
|
||||
}
|
||||
|
||||
lastscavenge := nanotime()
|
||||
nscavenge := 0
|
||||
|
||||
lasttrace := int64(0)
|
||||
idle := 0 // how many cycles in succession we had not wokeup somebody
|
||||
delay := uint32(0)
|
||||
|
|
@ -4316,9 +4303,6 @@ func sysmon() {
|
|||
// Make wake-up period small enough
|
||||
// for the sampling to be correct.
|
||||
maxsleep := forcegcperiod / 2
|
||||
if scavengelimit < forcegcperiod {
|
||||
maxsleep = scavengelimit / 2
|
||||
}
|
||||
shouldRelax := true
|
||||
if osRelaxMinNS > 0 {
|
||||
next := timeSleepUntil()
|
||||
|
|
@ -4381,12 +4365,6 @@ func sysmon() {
|
|||
injectglist(&list)
|
||||
unlock(&forcegc.lock)
|
||||
}
|
||||
// scavenge heap once in a while
|
||||
if lastscavenge+scavengelimit/2 < now {
|
||||
mheap_.scavengeAll(int32(nscavenge), uint64(now), uint64(scavengelimit))
|
||||
lastscavenge = now
|
||||
nscavenge++
|
||||
}
|
||||
if debug.schedtrace > 0 && lasttrace+int64(debug.schedtrace)*1000000 <= now {
|
||||
lasttrace = now
|
||||
schedtrace(debug.scheddetail > 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue