diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-09-20 12:23:30 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-09-20 12:23:39 +0200 |
commit | 46025e94cd662d8ae9918e59157cfd94be75c8c5 (patch) | |
tree | 509b77a233727699a68a3e021e5eff6e237b403c /guix/scripts | |
parent | b1fea30339f071e8751039fd0e6ef2aa3e6f44fb (diff) |
offload: Use a total order when sorting available machines.
* guix/scripts/offload.scm (machine-less-loaded?, machine-faster?):
Remove.
(machine-power-factor): New procedure.
(machine-less-loaded-or-faster?): Use it.
Diffstat (limited to 'guix/scripts')
-rw-r--r-- | guix/scripts/offload.scm | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index e7cba1380e..391906ff79 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -534,10 +534,6 @@ success, #f otherwise." (build-requirements-features requirements) (build-machine-features machine)))) -(define (machine-faster? m1 m2) - "Return #t if M1 is faster than M2." - (> (build-machine-speed m1) (build-machine-speed m2))) - (define (machine-load machine) "Return the load of MACHINE, divided by the number of parallel builds allowed on MACHINE." @@ -558,14 +554,16 @@ allowed on MACHINE." (_ +inf.0))))) ;something's fishy about MACHINE, so avoid it -(define (machine-less-loaded? m1 m2) - "Return #t if the load on M1 is lower than that on M2." - (< (machine-load m1) (machine-load m2))) +(define (machine-power-factor m) + "Return a factor that aggregates the speed and load of M. The higher the +better." + (/ (build-machine-speed m) + (+ 1 (machine-load m)))) (define (machine-less-loaded-or-faster? m1 m2) - "Return #t if M1 is either less loaded or faster than M2." - (or (machine-less-loaded? m1 m2) - (machine-faster? m1 m2))) + "Return #t if M1 is either less loaded or faster than M2. (This relation +defines a total order on machines.)" + (> (machine-power-factor m1) (machine-power-factor m2))) (define (machine-lock-file machine hint) "Return the name of MACHINE's lock file for HINT." |