Remove nodes slice in loop of takeByTopology

This commit is contained in:
Ted Yu 2019-11-29 12:12:22 -08:00
parent c58b63267c
commit 6415fa765e

View File

@ -688,21 +688,21 @@ func (m *ManagerImpl) takeByTopology(resource string, available sets.String, aff
// available device does not have any NUMA Nodes associated with it, add it // available device does not have any NUMA Nodes associated with it, add it
// to a list of NUMA Nodes for the fake NUMANode -1. // to a list of NUMA Nodes for the fake NUMANode -1.
perNodeDevices := make(map[int]sets.String) perNodeDevices := make(map[int]sets.String)
nodeWithoutTopology := -1
for d := range available { for d := range available {
var nodes []int if m.allDevices[resource][d].Topology == nil || len(m.allDevices[resource][d].Topology.Nodes) == 0 {
if m.allDevices[resource][d].Topology != nil { if _, ok := perNodeDevices[nodeWithoutTopology]; !ok {
for _, node := range m.allDevices[resource][d].Topology.Nodes { perNodeDevices[nodeWithoutTopology] = sets.NewString()
nodes = append(nodes, int(node.ID))
} }
perNodeDevices[nodeWithoutTopology].Insert(d)
continue
} }
if len(nodes) == 0 {
nodes = []int{-1} for _, node := range m.allDevices[resource][d].Topology.Nodes {
} if _, ok := perNodeDevices[int(node.ID)]; !ok {
for _, node := range nodes { perNodeDevices[int(node.ID)] = sets.NewString()
if _, ok := perNodeDevices[node]; !ok {
perNodeDevices[node] = sets.NewString()
} }
perNodeDevices[node].Insert(d) perNodeDevices[int(node.ID)].Insert(d)
} }
} }
@ -734,7 +734,7 @@ func (m *ManagerImpl) takeByTopology(resource string, available sets.String, aff
// has the device is encountered. // has the device is encountered.
for _, n := range nodes { for _, n := range nodes {
if perNodeDevices[n].Has(d) { if perNodeDevices[n].Has(d) {
if n == -1 { if n == nodeWithoutTopology {
withoutTopology = append(withoutTopology, d) withoutTopology = append(withoutTopology, d)
} else if affinity.IsSet(n) { } else if affinity.IsSet(n) {
fromAffinity = append(fromAffinity, d) fromAffinity = append(fromAffinity, d)