mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #85706 from yutedz/per-node-dev
Remove nodes slice in loop of takeByTopology
This commit is contained in:
		@@ -690,21 +690,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)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -736,7 +736,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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user