in pkg/noderesourcetopology/filter.go [204:230]
func (tm *TopologyMatch) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
if nodeInfo.Node() == nil {
return framework.NewStatus(framework.Error, fmt.Sprintf("Node is nil %s", nodeInfo.Node().Name))
}
if v1qos.GetPodQOS(pod) == v1.PodQOSBestEffort {
return nil
}
nodeName := nodeInfo.Node().Name
nodeTopology := tm.findNodeTopology(nodeName)
if nodeTopology == nil {
return nil
}
klog.V(5).Infof("nodeTopology: %v", nodeTopology)
for _, policyName := range nodeTopology.TopologyPolicies {
if handler, ok := tm.policyHandlers[topologyv1alpha1.TopologyManagerPolicy(policyName)]; ok {
if status := handler(pod, nodeTopology.Zones); status != nil {
return status
}
} else {
klog.V(5).Infof("Handler for policy %s not found", policyName)
}
}
return nil
}