mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: make CPU limiter assist time much less error-prone
At the expense of performance (having to update another atomic counter) this change makes CPU limiter assist time much less error-prone to manage. There are currently a number of issues with respect to how scavenge assist time is treated, and this change resolves those by just having the limiter maintain its own internal pool that's drained on each update. While we're here, clear the measured assist time each cycle, which was the impetus for the change. Change-Id: I84c513a9f012b4007362a33cddb742c5779782b7 Reviewed-on: https://go-review.googlesource.com/c/go/+/404304 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
5a4ba6d905
commit
2eb8b6eec6
7 changed files with 79 additions and 67 deletions
|
|
@ -1439,16 +1439,20 @@ func (l *GCCPULimiter) NeedUpdate(now int64) bool {
|
|||
return l.limiter.needUpdate(now)
|
||||
}
|
||||
|
||||
func (l *GCCPULimiter) StartGCTransition(enableGC bool, totalAssistTime, now int64) {
|
||||
l.limiter.startGCTransition(enableGC, totalAssistTime, now)
|
||||
func (l *GCCPULimiter) StartGCTransition(enableGC bool, now int64) {
|
||||
l.limiter.startGCTransition(enableGC, now)
|
||||
}
|
||||
|
||||
func (l *GCCPULimiter) FinishGCTransition(now int64) {
|
||||
l.limiter.finishGCTransition(now)
|
||||
}
|
||||
|
||||
func (l *GCCPULimiter) Update(totalAssistTime int64, now int64) {
|
||||
l.limiter.update(totalAssistTime, now)
|
||||
func (l *GCCPULimiter) Update(now int64) {
|
||||
l.limiter.update(now)
|
||||
}
|
||||
|
||||
func (l *GCCPULimiter) AddAssistTime(t int64) {
|
||||
l.limiter.addAssistTime(t)
|
||||
}
|
||||
|
||||
func (l *GCCPULimiter) ResetCapacity(now int64, nprocs int32) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue