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

Ian Jackson posted 1 patch 4 years, 9 months 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 4 years, 9 months 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