From 57b043c7fb6a220b8cf0f022e4161bbe87f2b0f1 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Tue, 17 Dec 2019 12:29:44 -0500 Subject: [PATCH] * src/job.c (load_too_high): Disable Linux /proc/loadavg for now This new feature has a problem: if you provide a load which is larger than the number of cores then it will always run every job. Before we can enable it we need to at the least learn how to clamp this value to the number of cores. To experiment with it, set PROC_FD_INIT to -2 in job.c to re-enable the feature. --- src/job.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/job.c b/src/job.c index 0052b0cd..8c8f0ad9 100644 --- a/src/job.c +++ b/src/job.c @@ -2008,7 +2008,18 @@ load_too_high (void) #else static double last_sec; static time_t last_now; - static int proc_fd = -2; + + /* This is disabled by default for now, because it will behave badly if the + user gives a value > the number of cores; in that situation the load will + never be exceeded, this function always returns false, and we'll start + all the jobs. Also, it's not quite right to limit jobs to the number of + cores not busy since a job takes some time to start etc. Maybe that's + OK, I'm not sure exactly how to handle that, but for sure we need to + clamp this value at the number of cores before this can be enabled. + */ +#define PROC_FD_INIT -1 + static int proc_fd = PROC_FD_INIT; + double load, guess; time_t now;