@@ -12,7 +12,6 @@ import (
1212 "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/api/common_info"
1313 "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/api/pod_info"
1414 "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/api/podgroup_info"
15- "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/api/reclaimer_info"
1615 "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/framework"
1716 "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/log"
1817 "github.com/NVIDIA/KAI-scheduler/pkg/scheduler/metrics"
@@ -49,8 +48,7 @@ func (ra *reclaimAction) Execute(ssn *framework.Session) {
4948 for ! jobsOrderByQueues .IsEmpty () {
5049 job := jobsOrderByQueues .PopNextJob ()
5150
52- reclaimerInfo := buildReclaimerInfo (ssn , job )
53- if ! ssn .CanReclaimResources (reclaimerInfo ) {
51+ if ! ssn .CanReclaimResources (job ) {
5452 continue
5553 }
5654
@@ -69,7 +67,7 @@ func (ra *reclaimAction) Execute(ssn *framework.Session) {
6967 }
7068 }
7169 metrics .IncPodgroupsConsideredByAction ()
72- succeeded , statement , reclaimeeTasksNames := ra .attemptToReclaimForSpecificJob (ssn , job , reclaimerInfo )
70+ succeeded , statement , reclaimeeTasksNames := ra .attemptToReclaimForSpecificJob (ssn , job )
7371 if succeeded {
7472 metrics .IncPodgroupScheduledByAction ()
7573 log .InfraLogger .V (3 ).Infof (
@@ -88,7 +86,7 @@ func (ra *reclaimAction) Execute(ssn *framework.Session) {
8886}
8987
9088func (ra * reclaimAction ) attemptToReclaimForSpecificJob (
91- ssn * framework.Session , reclaimer * podgroup_info.PodGroupInfo , reclaimerInfo * reclaimer_info. ReclaimerInfo ,
89+ ssn * framework.Session , reclaimer * podgroup_info.PodGroupInfo ,
9290) (bool , * framework.Statement , []string ) {
9391 queue := ssn .Queues [reclaimer .Queue ]
9492 resReq := podgroup_info .GetTasksToAllocateInitResource (reclaimer , ssn .TaskOrderFn , false )
@@ -100,30 +98,19 @@ func (ra *reclaimAction) attemptToReclaimForSpecificJob(
10098 feasibleNodes := common .FeasibleNodesForJob (maps .Values (ssn .Nodes ), reclaimer )
10199 solver := solvers .NewJobsSolver (
102100 feasibleNodes ,
103- reclaimableScenarioCheck (ssn , reclaimerInfo ),
101+ reclaimableScenarioCheck (ssn , reclaimer ),
104102 getOrderedVictimsQueue (ssn , reclaimer ),
105103 framework .Reclaim )
106104 return solver .Solve (ssn , reclaimer )
107105}
108106
109107func reclaimableScenarioCheck (ssn * framework.Session ,
110- reclaimerInfo * reclaimer_info. ReclaimerInfo ) solvers.SolutionValidator {
108+ reclaimer * podgroup_info. PodGroupInfo ) solvers.SolutionValidator {
111109 return func (
112110 _ * podgroup_info.PodGroupInfo ,
113111 victimJobs []* podgroup_info.PodGroupInfo ,
114112 victimTasks []* pod_info.PodInfo ) bool {
115- return ssn .ReclaimScenarioValidator (reclaimerInfo , victimJobs , victimTasks )
116- }
117- }
118-
119- func buildReclaimerInfo (ssn * framework.Session , reclaimerJob * podgroup_info.PodGroupInfo ) * reclaimer_info.ReclaimerInfo {
120- return & reclaimer_info.ReclaimerInfo {
121- Name : reclaimerJob .Name ,
122- Namespace : reclaimerJob .Namespace ,
123- Queue : reclaimerJob .Queue ,
124- IsPreemptable : reclaimerJob .IsPreemptibleJob (ssn .IsInferencePreemptible ()),
125- RequiredResources : podgroup_info .GetTasksToAllocateInitResource (
126- reclaimerJob , ssn .TaskOrderFn , false ),
113+ return ssn .ReclaimScenarioValidator (reclaimer , victimJobs , victimTasks )
127114 }
128115}
129116
0 commit comments