mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-30 22:05:27 +00:00
parser: fix --jobs so job scaling is applied correctly
job scaling allows the parser to resample the number of cpus available and increase the number of jobs that can be launched if cpu available increases. Unfortunately job scaling was being applied even when a fixed number of jobs was specified. So --jobs=2 doesn't actually clamp the compile at 2 jobs. Instead job scaling should only be applied when --jobs=auto or when jobs are set to a multiple of the cpus. MR: https://gitlab.com/apparmor/apparmor/-/merge_requests/703 Signed-off-by: John Johansen <john.johansen@canonical.com> Acked-by: Steve Beattie <steve.beattie@canonical.com>
This commit is contained in:
@@ -748,6 +748,8 @@ static int process_arg(int c, char *optarg)
|
||||
jobs = process_jobs_arg("-j", optarg);
|
||||
if (jobs == 0)
|
||||
jobs_max = 0;
|
||||
else if (jobs != JOBS_AUTO && jobs < LONG_MAX)
|
||||
jobs_max = jobs;
|
||||
break;
|
||||
case ARG_MAX_JOBS:
|
||||
jobs_max = process_jobs_arg("max-jobs", optarg);
|
||||
@@ -1329,7 +1331,7 @@ static void setup_parallel_compile(long ncpus, long maxcpus)
|
||||
pwarn(WARN_JOBS, "%s: Capping number of jobs to %ld * # of cpus == '%ld'",
|
||||
progname, jobs_max, jobs);
|
||||
jobs = jobs_max;
|
||||
} else if (jobs < jobs_max)
|
||||
} else if (jobs_scale && jobs < jobs_max)
|
||||
/* the bigger the difference the more sample chances given */
|
||||
jobs_scale = jobs_max + 1 - ncpus;
|
||||
|
||||
|
Reference in New Issue
Block a user