mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +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
 | 
			
		||||
	// to a list of NUMA Nodes for the fake NUMANode -1.
 | 
			
		||||
	perNodeDevices := make(map[int]sets.String)
 | 
			
		||||
	nodeWithoutTopology := -1
 | 
			
		||||
	for d := range available {
 | 
			
		||||
		var nodes []int
 | 
			
		||||
		if m.allDevices[resource][d].Topology != nil {
 | 
			
		||||
		if m.allDevices[resource][d].Topology == nil || len(m.allDevices[resource][d].Topology.Nodes) == 0 {
 | 
			
		||||
			if _, ok := perNodeDevices[nodeWithoutTopology]; !ok {
 | 
			
		||||
				perNodeDevices[nodeWithoutTopology] = sets.NewString()
 | 
			
		||||
			}
 | 
			
		||||
			perNodeDevices[nodeWithoutTopology].Insert(d)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for _, node := range m.allDevices[resource][d].Topology.Nodes {
 | 
			
		||||
				nodes = append(nodes, int(node.ID))
 | 
			
		||||
			if _, ok := perNodeDevices[int(node.ID)]; !ok {
 | 
			
		||||
				perNodeDevices[int(node.ID)] = sets.NewString()
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if len(nodes) == 0 {
 | 
			
		||||
			nodes = []int{-1}
 | 
			
		||||
		}
 | 
			
		||||
		for _, node := range nodes {
 | 
			
		||||
			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.
 | 
			
		||||
		for _, n := range nodes {
 | 
			
		||||
			if perNodeDevices[n].Has(d) {
 | 
			
		||||
				if n == -1 {
 | 
			
		||||
				if n == nodeWithoutTopology {
 | 
			
		||||
					withoutTopology = append(withoutTopology, d)
 | 
			
		||||
				} else if affinity.IsSet(n) {
 | 
			
		||||
					fromAffinity = append(fromAffinity, d)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user