Re: [build-check] scripts: add check_build script

From: Randy Dunlap
Date: Tue Jul 03 2018 - 19:27:12 EST


On 07/03/2018 03:49 PM, Andrew Morton wrote:
> On Tue, 3 Jul 2018 15:12:10 +0200 Norbert Manthey <nmanthey@xxxxxxxxx> wrote:
>
>> This script performs build testing, by building several configurations
>> several times. The script is introduced to improve the consistency of
>> testing changes in the kernel configuration.
>>
>> This version build randconfig 10 times, as well as allyesconfig,
>> allnoconfig and allmodconfig. Depending on the used machine and system
>> setup, the script might take a while to finish.
>>
>> The script logs all the used config files, as well as the output of the
>> build commands to a log directory "build_check_logs", so that this data
>> can be retrieved after running the script.
>
> I'm unable to even guess how many people will find this useful.

I expect that lots of us have similar scripts.

>> +build ()
>> +{
>> + local -r LOG_FILE="$1"
>> + local -i STATUS=0
>> +
>> + make clean -j $(nproc) &> /dev/null
>> + make -j $(nproc) &>> "$LOG_FILE" || STATUS=$?
>> +
>> + echo "build status: $STATUS" >> "$LOG_FILE"
>> + echo "[$SECONDS] build status: $STATUS"
>> + return "$STATUS"
>> +}
>
> The script never sets nproc. So I guess this is a bare `make -j'.
> When I type that on my (quite beefy) workstation I get eleventy xillion
> processes and the machine locks up. Can't even wiggle the mouse.
> After a 20 minute nap (thanks!) it was still comatose so I hit the big
> button (who writes this junk??).
>
> So you might want to take an educated guess from /proc/cpuinfo here.

or use
nproc=`getconf _NPROCESSORS_ONLN`

or double it if you want to keep processes ready/waiting.

--
~Randy