All of lore.kernel.org
 help / color / mirror / Atom feed
* [OSSTEST PATCH 1/3] host allocation: Prepare for further starvation check
@ 2021-06-07 15:16 Ian Jackson
  2021-06-07 15:16 ` [OSSTEST PATCH 2/3] host allocation: Check "job class" too Ian Jackson
  2021-06-07 15:16 ` [OSSTEST PATCH 3/3] host allocation: Avoid starving out failing tests Ian Jackson
  0 siblings, 2 replies; 3+ messages in thread
From: Ian Jackson @ 2021-06-07 15:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

* Add a new job pattern parameter to $starvation_q
* Add a new $thisclass parameter to starving
* Pass 0 for now.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 ts-hosts-allocate-Executive | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive
index 459b9215..9722ce12 100755
--- a/ts-hosts-allocate-Executive
+++ b/ts-hosts-allocate-Executive
@@ -162,6 +162,7 @@ END
      LEFT JOIN steps
          USING (flight,job)
          WHERE flight= ?
+           AND job LIKE ?
       GROUP BY job, jobs.status
 END
 
@@ -822,11 +823,12 @@ sub most_optimistic ($$$) {
     return $optimist->{Got};
 }
 
-sub starving ($$) {
-    my ($best_start_abs, $now) = @_;
+sub starving ($$$) {
+    my ($best_start_abs, $now, $thisclass) = @_;
     return (0, 'runvar says never give up') unless %$starvation_p;
     return (0, 'no estimate') unless defined $best_start_abs;
-    $starvation_q->execute($flight);
+    my $joblike = $thisclass ? ($job =~ s/(?:(-)|\W).*/$1\%/r) : '%';
+    $starvation_q->execute($flight, $joblike);
     my $d=0;
     my $w=0;
     my $maxfin=0;
@@ -935,7 +937,7 @@ sub attempt_allocation {
 	    }
 	} elsif (%$starvation_p) {
 	    my $est_abs = most_optimistic($best, $now, $starvation_p->{I});
-	    my ($starving, $m) = starving($est_abs, $now);
+	    my ($starving, $m) = starving($est_abs, $now, 0);
 	    $starvation_q->finish();
 	    if (!$starving) {
 		print DEBUG "not starving: $m\n";
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [OSSTEST PATCH 2/3] host allocation: Check "job class" too
  2021-06-07 15:16 [OSSTEST PATCH 1/3] host allocation: Prepare for further starvation check Ian Jackson
@ 2021-06-07 15:16 ` Ian Jackson
  2021-06-07 15:16 ` [OSSTEST PATCH 3/3] host allocation: Avoid starving out failing tests Ian Jackson
  1 sibling, 0 replies; 3+ messages in thread
From: Ian Jackson @ 2021-06-07 15:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

That is all jobs which start with the same \w* as this job.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 ts-hosts-allocate-Executive | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive
index 9722ce12..849bc97b 100755
--- a/ts-hosts-allocate-Executive
+++ b/ts-hosts-allocate-Executive
@@ -937,12 +937,20 @@ sub attempt_allocation {
 	    }
 	} elsif (%$starvation_p) {
 	    my $est_abs = most_optimistic($best, $now, $starvation_p->{I});
-	    my ($starving, $m) = starving($est_abs, $now, 0);
+	    my $all_starving = 1;
+	    foreach my $thisclass (qw(1 0)) {
+		my $tcdesc = $thisclass ? 'class' : 'flight';
+		my ($starving, $m) = starving($est_abs, $now, $thisclass);
+		if (!$starving) {
+		    print DEBUG "not starving ($tcdesc): $m\n";
+		    $all_starving = 0;
+		    last;
+		} else {
+		    logm "starving ($tcdesc) ($m)";
+		}
+	    }
 	    $starvation_q->finish();
-	    if (!$starving) {
-		print DEBUG "not starving: $m\n";
-	    } else {
-		logm "starving ($m)";
+	    if ($all_starving) {
 		return $alloc_starved_r;
 	    }
 	}
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [OSSTEST PATCH 3/3] host allocation: Avoid starving out failing tests
  2021-06-07 15:16 [OSSTEST PATCH 1/3] host allocation: Prepare for further starvation check Ian Jackson
  2021-06-07 15:16 ` [OSSTEST PATCH 2/3] host allocation: Check "job class" too Ian Jackson
@ 2021-06-07 15:16 ` Ian Jackson
  1 sibling, 0 replies; 3+ messages in thread
From: Ian Jackson @ 2021-06-07 15:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

This can result in bad pushes.  Better to wait.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 ts-hosts-allocate-Executive | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive
index 849bc97b..4dfcd0cd 100755
--- a/ts-hosts-allocate-Executive
+++ b/ts-hosts-allocate-Executive
@@ -704,6 +704,7 @@ sub hid_recurse ($$) {
 	    Selections => [ map { $_->{Selected} } @hids ],
 	    Start => $start_time,
 	    Duration => $duration,
+	    PrevFail => ($previously_failed || $previously_failed_equiv),
 	};
     }
 }
@@ -951,7 +952,11 @@ sub attempt_allocation {
 	    }
 	    $starvation_q->finish();
 	    if ($all_starving) {
-		return $alloc_starved_r;
+		if (!$best->{PrevFail}) {
+		    return $alloc_starved_r;
+		} else {
+		    logm "starving, but previously failed, so continue...";
+		}
 	    }
 	}
     }
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-06-07 15:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-07 15:16 [OSSTEST PATCH 1/3] host allocation: Prepare for further starvation check Ian Jackson
2021-06-07 15:16 ` [OSSTEST PATCH 2/3] host allocation: Check "job class" too Ian Jackson
2021-06-07 15:16 ` [OSSTEST PATCH 3/3] host allocation: Avoid starving out failing tests Ian Jackson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.