Skip to content

Commit 74fe936

Browse files
committed
Simplify logic in devicemanager TopologyHint generation
1 parent 9f5f401 commit 74fe936

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

pkg/kubelet/cm/devicemanager/topology_hints.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"k8s.io/api/core/v1"
2121
"k8s.io/apimachinery/pkg/util/sets"
2222
"k8s.io/klog/v2"
23+
pluginapi "k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1"
2324
"k8s.io/kubernetes/pkg/kubelet/cm/topologymanager"
2425
"k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask"
2526
)
@@ -103,14 +104,8 @@ func (m *ManagerImpl) generateDeviceTopologyHints(resource string, devices sets.
103104
// First, update minAffinitySize for the current request size.
104105
devicesInMask := 0
105106
for _, device := range m.allDevices[resource] {
106-
if device.Topology == nil {
107-
continue
108-
}
109-
for _, node := range device.Topology.Nodes {
110-
if mask.IsSet(int(node.ID)) {
111-
devicesInMask++
112-
break
113-
}
107+
if mask.AnySet(m.getNUMANodeIds(device.Topology)) {
108+
devicesInMask++
114109
}
115110
}
116111
if devicesInMask >= request && mask.Count() < minAffinitySize {
@@ -121,14 +116,8 @@ func (m *ManagerImpl) generateDeviceTopologyHints(resource string, devices sets.
121116
// NUMA Node combination to satisfy the device request.
122117
numMatching := 0
123118
for d := range devices {
124-
if m.allDevices[resource][d].Topology == nil {
125-
continue
126-
}
127-
for _, node := range m.allDevices[resource][d].Topology.Nodes {
128-
if mask.IsSet(int(node.ID)) {
129-
numMatching++
130-
break
131-
}
119+
if mask.AnySet(m.getNUMANodeIds(m.allDevices[resource][d].Topology)) {
120+
numMatching++
132121
}
133122
}
134123

@@ -158,3 +147,14 @@ func (m *ManagerImpl) generateDeviceTopologyHints(resource string, devices sets.
158147

159148
return hints
160149
}
150+
151+
func (m *ManagerImpl) getNUMANodeIds(topology *pluginapi.TopologyInfo) []int {
152+
if topology == nil {
153+
return nil
154+
}
155+
var ids []int
156+
for _, n := range topology.Nodes {
157+
ids = append(ids, int(n.ID))
158+
}
159+
return ids
160+
}

0 commit comments

Comments
 (0)