@@ -17,7 +17,6 @@ limitations under the License.
17
17
package topologymanager
18
18
19
19
import (
20
- "k8s.io/klog"
21
20
"k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask"
22
21
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
23
22
)
@@ -72,49 +71,19 @@ func filterSingleNumaHints(allResourcesHints [][]TopologyHint) [][]TopologyHint
72
71
return filteredResourcesHints
73
72
}
74
73
75
- func (p * singleNumaNodePolicy ) mergeProvidersHints (providersHints [] map [ string ][]TopologyHint ) TopologyHint {
74
+ func (p * singleNumaNodePolicy ) mergeProvidersHints (filteredHints [ ][]TopologyHint ) TopologyHint {
76
75
// Set the default affinity as an any-numa affinity containing the list
77
76
// of NUMA Nodes available on this machine.
78
77
defaultAffinity , _ := bitmask .NewBitMask (p .numaNodes ... )
79
78
80
- // Loop through all provider hints and save an accumulated list of the
81
- // hints returned by each hint provider. If no hints are provided, assume
82
- // that provider has no preference for topology-aware allocation.
83
- var allProviderHints [][]TopologyHint
84
- for _ , hints := range providersHints {
85
- // If hints is nil, insert a single, preferred any-numa hint into allProviderHints.
86
- if len (hints ) == 0 {
87
- klog .Infof ("[topologymanager] Hint Provider has no preference for NUMA affinity with any resource" )
88
- allProviderHints = append (allProviderHints , []TopologyHint {{nil , true }})
89
- continue
90
- }
91
-
92
- // Otherwise, accumulate the hints for each resource type into allProviderHints.
93
- for resource := range hints {
94
- if hints [resource ] == nil {
95
- klog .Infof ("[topologymanager] Hint Provider has no preference for NUMA affinity with resource '%s'" , resource )
96
- allProviderHints = append (allProviderHints , []TopologyHint {{nil , true }})
97
- continue
98
- }
99
-
100
- if len (hints [resource ]) == 0 {
101
- klog .Infof ("[topologymanager] Hint Provider has no possible NUMA affinities for resource '%s'" , resource )
102
- allProviderHints = append (allProviderHints , []TopologyHint {{nil , false }})
103
- continue
104
- }
105
-
106
- allProviderHints = append (allProviderHints , hints [resource ])
107
- }
108
- }
109
-
110
79
// Filter to only include don't cares and hints with a single NUMA node.
111
- allProviderHints = filterSingleNumaHints (allProviderHints )
80
+ filteredHints = filterSingleNumaHints (filteredHints )
112
81
113
82
// Set the bestHint to return from this function as {nil false}.
114
83
// This will only be returned if no better hint can be found when
115
84
// merging hints from each hint provider.
116
85
bestHint := TopologyHint {defaultAffinity , false }
117
- iterateAllProviderTopologyHints (allProviderHints , func (permutation []TopologyHint ) {
86
+ iterateAllProviderTopologyHints (filteredHints , func (permutation []TopologyHint ) {
118
87
// Get the NUMANodeAffinity from each hint in the permutation and see if any
119
88
// of them encode unpreferred allocations.
120
89
mergedHint := mergePermutation (p .numaNodes , permutation )
@@ -158,7 +127,8 @@ func (p *singleNumaNodePolicy) mergeProvidersHints(providersHints []map[string][
158
127
}
159
128
160
129
func (p * singleNumaNodePolicy ) Merge (providersHints []map [string ][]TopologyHint ) (TopologyHint , lifecycle.PodAdmitResult ) {
161
- hint := p .mergeProvidersHints (providersHints )
130
+ filteredHints := filterProvidersHints (providersHints )
131
+ hint := p .mergeProvidersHints (filteredHints )
162
132
admit := p .canAdmitPodResult (& hint )
163
133
return hint , admit
164
134
}
0 commit comments