From 0ec1f85b47a548f1fd1e84417d462c2c95d5a6f7 Mon Sep 17 00:00:00 2001 From: Ted Yu Date: Fri, 12 Jul 2019 09:40:19 -0700 Subject: [PATCH] Break out of inner loop when newQuantity is negative --- pkg/kubelet/preemption/preemption.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/preemption/preemption.go b/pkg/kubelet/preemption/preemption.go index 751fcc246c9..f75c66d24cc 100644 --- a/pkg/kubelet/preemption/preemption.go +++ b/pkg/kubelet/preemption/preemption.go @@ -189,10 +189,9 @@ func (a admissionRequirementList) distance(pod *v1.Pod) float64 { dist := float64(0) for _, req := range a { remainingRequest := float64(req.quantity - resource.GetResourceRequest(pod, req.resourceName)) - if remainingRequest < 0 { - remainingRequest = 0 + if remainingRequest > 0 { + dist += math.Pow(remainingRequest/float64(req.quantity), 2) } - dist += math.Pow(remainingRequest/float64(req.quantity), 2) } return dist } @@ -205,6 +204,9 @@ func (a admissionRequirementList) subtract(pods ...*v1.Pod) admissionRequirement newQuantity := req.quantity for _, pod := range pods { newQuantity -= resource.GetResourceRequest(pod, req.resourceName) + if newQuantity <= 0 { + break + } } if newQuantity > 0 { newList = append(newList, &admissionRequirement{