]> xenbits.xensource.com Git - people/dariof/osstest.git/commitdiff
ts-hosts-allocate-Executive: Redo variation_bonus scoring
authorIan Jackson <ian.jackson@eu.citrix.com>
Tue, 11 Nov 2014 19:34:07 +0000 (19:34 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Mon, 17 Nov 2014 17:32:10 +0000 (17:32 +0000)
Use a logarithmic scale.  Cap the bonus at 12h rather than 5d/30 = 4h.
When we have previously failed, make sure we apply a reverse bonus,
rather than a penalty.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
v2: Fix cap to really be 12h not 12d.

ts-hosts-allocate-Executive

index 24f78d3c2281fd842d8d28dff6e0a9eef44c90fd..7ffbc8cd0a33a0322b1bae358946f4a4b0e95523 100755 (executable)
@@ -537,19 +537,25 @@ sub hid_recurse ($$) {
     if ($jobinfo->{recipe} =~ m/build/) {
         $variation_age= 0;
        $duration_for_cost= $duration + $duration_rightaway_adjust;
-    } elsif ($variation_age > 5*86400) {
-       $variation_age= 5*86400;
     }
 
+    my $log_variation_age = log(1+$variation_age/86400);
+    my $variation_bonus = $log_variation_age * 3600*2;
+    my $max_variation_bonus = 12*3600;
+    $variation_bonus=$max_variation_bonus
+       if $variation_bonus>$max_variation_bonus;
+
     my $cost= $start_time
        + $duration_for_cost
         - ($previously_failed      ==@hids ? 366*86400 :
           $previously_failed_equiv==@hids ? 365*86400 :
           0)
-        + ($previously_failed ? + $variation_age * 10 : - $variation_age / 30)
+        + ($previously_failed || $previously_failed_equiv
+          ? (-$max_variation_bonus+$variation_bonus) : -$variation_bonus)
        - $share_reuse * 10000;
     
     print DEBUG "$dbg FINAL start=$start_time va=$variation_age".
+       " variation_bonus=$variation_bonus".
         " previously_failed=$previously_failed".
        " previously_failed_equiv=$previously_failed_equiv cost=$cost\n";