Merge pull request #103527 from tkashem/apf-fix-virtual-time

apf: include seats from queued requests when advancing virtual clock
This commit is contained in:
Kubernetes Prow Robot 2021-07-09 12:14:53 -07:00 committed by GitHub
commit 87ee0c06fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -414,9 +414,9 @@ func (qs *queueSet) syncTimeLocked() {
// been advancing, according to the logic in `doc.go`.
func (qs *queueSet) getVirtualTimeRatioLocked() float64 {
activeQueues := 0
seatsInUse := 0
seatsRequested := 0
for _, queue := range qs.queues {
seatsInUse += queue.seatsInUse
seatsRequested += (queue.seatsInUse + queue.requests.SeatsSum())
if queue.requests.Length() > 0 || queue.requestsExecuting > 0 {
activeQueues++
}
@ -424,7 +424,7 @@ func (qs *queueSet) getVirtualTimeRatioLocked() float64 {
if activeQueues == 0 {
return 0
}
return math.Min(float64(seatsInUse), float64(qs.dCfg.ConcurrencyLimit)) / float64(activeQueues)
return math.Min(float64(seatsRequested), float64(qs.dCfg.ConcurrencyLimit)) / float64(activeQueues)
}
// timeoutOldRequestsAndRejectOrEnqueueLocked encapsulates the logic required