[Xen-devel] [OSSTEST PATCH] starvation: Do not give up if there are other jobs running

Ian Jackson posted 1 patch 17 weeks ago
Failed in applying to current master (apply log)
ts-hosts-allocate-Executive | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

[Xen-devel] [OSSTEST PATCH] starvation: Do not give up if there are other jobs running

Posted by Ian Jackson 17 weeks ago
We want those other jobs to finish so that we can include the time
they took, and the fact that they completed, in our calculations.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-hosts-allocate-Executive | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive
index 6b3da600..079ef1d1 100755
--- a/ts-hosts-allocate-Executive
+++ b/ts-hosts-allocate-Executive
@@ -788,9 +788,17 @@ sub starving ($$) {
     my $maxfin=0;
     while (my ($j,$st,$fin) = $starvation_q->fetchrow_array()) {
 	if ($st eq 'preparing' ||
-	    $st eq 'queued' ||
-	    $st eq 'running') {
+	    $st eq 'queued') {
 	    $w++;
+	} elsif ($st eq 'running') {
+	    # We don't quit if there are still jobs running.  Instead
+	    # we wait until they are done and then see if how much we
+	    # would be delaying their results.  This does mean that a
+	    # flight can be kept going, rather than being treated as
+	    # starved, by a constant trickle of late jobs.  But that
+	    # 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 {
 	    $d++;
 	    return (0, "job $j status $st but no step finished time!")
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel