[apparmor] [PATCH] parser: add basic support for parallel compiles and loads

John Johansen john.johansen at canonical.com
Mon Nov 30 22:35:08 UTC 2015


On 11/30/2015 12:41 PM, Seth Arnold wrote:
> On Sat, Nov 28, 2015 at 11:08:05AM -0800, John Johansen wrote:
>> +static void setup_parallel_compile(void)
>> +{
>> +	/* jobs_count and paralell_max set by default, config or args */
>> +	long n = sysconf(_SC_NPROCESSORS_ONLN);
> 
> We should handle an error return here ..

yep

> 
>> +	if (jobs_count == JOBS_AUTO)
>> +		jobs_count = n;
>> +	if (jobs_max == JOBS_AUTO)
>> +		jobs_max = n;
>> +	/* jobs_max will be used internally */
>> +	jobs_max = min(jobs_count, jobs_max);
>> +	if (jobs_max > 8*n) {
>> +		PERROR("%s: Invalid maximum number of jobs '%ld' > 8 * # of cpus",
>> +		       progname, jobs_max);
>> +		exit(1);		
>> +	}
>> +	else if (jobs_max < 1) {
>> +		PERROR("%s: Invalid maximum number of jobs '%ld'",
>> +		       progname, jobs_max);
>> +		exit(1);
>> +	}
> 
> .. because this test could be tripped with a -1 return from sysconf().
> 
> If sysconf() fails we should probably just go with n = 2 or something
> conservative.
> 
> I like the cap on eight times the number of CPUs.
> 
> Thanks
> 
> 
> 




More information about the AppArmor mailing list