From b0e7bf4696f7d98eab190da8fe6140873b2e90d8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 12 Oct 2021 18:25:59 +0100 Subject: [PATCH] starvation: Only count "pass" and "fail" as done jobs The main effect is to treat "broken" and "blocked" jobs as not part of the flight for starvation calculations. This is correct for commissioning flights and OK for other flights. Signed-off-by: Ian Jackson Release-Acked-by: Ian Jackson --- Osstest/Executive.pm | 3 ++- ts-hosts-allocate-Executive | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm index d95d848..9d7c713 100644 --- a/Osstest/Executive.pm +++ b/Osstest/Executive.pm @@ -1148,7 +1148,8 @@ END # to allow for slow jobs, compared to other jobs # W number of jobs waiting - strictly, jobs in states # preparing queued running -# D number of jobs done - strictly, other states +# D number of jobs done - strictly, jobs in states +# pass fail # tuning parameters: # Xt X when D=9 W=1, ie cancel one job out of ten # Xh X when D=1 W=1, ie cancel one job out of two diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive index 4dfcd0c..19047d4 100755 --- a/ts-hosts-allocate-Executive +++ b/ts-hosts-allocate-Executive @@ -846,11 +846,14 @@ sub starving ($$$) { # is indistinguishable from a flight which is at the head # of the queue for a small set of resources. return (0, "job $j status $st, don't give up just yet"); - } else { + } elsif ($st eq 'pass' || + $st eq 'fail') { $d++; return (0, "job $j status $st but no step finished time!") unless defined $fin; $maxfin = $fin if $fin > $maxfin; + } else { + # disregard - neither W or D } } # we quit if the total time from the start of the flight -- 2.39.5