xen-devel.lists.xenproject.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).