From 76591db7d4fea3cb0587afb23847a3882e77c2dc Mon Sep 17 00:00:00 2001 From: "Bobby (Babak) Salamat" Date: Tue, 4 Dec 2018 11:34:59 -0800 Subject: [PATCH] Avoid copying Extender struct while running priority functions --- pkg/scheduler/core/generic_scheduler.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index fa2321807c..236de25d75 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -694,12 +694,12 @@ func PrioritizeNodes( wg.Add(1) go func(index int) { defer wg.Done() - if err := priorityConfigs[i].Reduce(pod, meta, nodeNameToInfo, results[index]); err != nil { + if err := priorityConfigs[index].Reduce(pod, meta, nodeNameToInfo, results[index]); err != nil { appendError(err) } if klog.V(10) { for _, hostPriority := range results[index] { - klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), hostPriority.Host, priorityConfigs[i].Name, hostPriority.Score) + klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), hostPriority.Host, priorityConfigs[index].Name, hostPriority.Score) } } }(i) @@ -722,14 +722,14 @@ func PrioritizeNodes( if len(extenders) != 0 && nodes != nil { combinedScores := make(map[string]int, len(nodeNameToInfo)) - for _, extender := range extenders { - if !extender.IsInterested(pod) { + for i := range extenders { + if !extenders[i].IsInterested(pod) { continue } wg.Add(1) - go func(ext algorithm.SchedulerExtender) { + go func(extIndex int) { defer wg.Done() - prioritizedList, weight, err := ext.Prioritize(pod, nodes) + prioritizedList, weight, err := extenders[extIndex].Prioritize(pod, nodes) if err != nil { // Prioritization errors from extender can be ignored, let k8s/other extenders determine the priorities return @@ -738,12 +738,12 @@ func PrioritizeNodes( for i := range *prioritizedList { host, score := (*prioritizedList)[i].Host, (*prioritizedList)[i].Score if klog.V(10) { - klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), host, ext.Name(), score) + klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), host, extenders[extIndex].Name(), score) } combinedScores[host] += score * weight } mu.Unlock() - }(extender) + }(i) } // wait for all go routines to finish wg.Wait()