Date: Sat, 12 Jun 2021 18:35:01 -0700 From: Mark Millard via freebsd-arm <freebsd-arm@freebsd.org> To: bob prohaska <fbsd@www.zefox.net> Cc: Michael Gmelin <freebsd@grem.de>, freebsd-arm@freebsd.org, freebsd-ports@freebsd.org Subject: Re: Restraining poudriere Message-ID: <3CDFB92D-00A4-42E6-891C-B31F10C4842F@yahoo.com> In-Reply-To: <16D4307D-FCAC-4027-A41D-F1BD7265D3FC@yahoo.com> References: <20210612172957.GA71089@www.zefox.net> <F2BE7E84-8290-443C-8C71-D61095139D14@grem.de> <20210612175704.GC71089@www.zefox.net> <16D4307D-FCAC-4027-A41D-F1BD7265D3FC@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Jun-12, at 17:53, Mark Millard <marklmi at yahoo.com> wrote: > On 2021-Jun-12, at 10:57, bob prohaska <fbsd at www.zefox.net> wrote: >=20 >> On Sat, Jun 12, 2021 at 07:36:48PM +0200, Michael Gmelin wrote: >>>=20 >>>=20 >>>> On 12. Jun 2021, at 19:31, bob prohaska <fbsd@www.zefox.net> wrote: >>>>=20 >>>> ???In playing with poudriere on raspberry pi 3 and 4 it seems to >>>> work well on the 8 GB Pi4 but is over-optimistic on the 1 GB Pi3. >>>>=20 >>>> Can poudriere be configured to tackle packages one at a time? >>>=20 >>> Yes, see poudriere.conf: >>>=20 >>> # parallel build support. >>> # >>> # By default poudriere uses hw.ncpu to determine the number of = builders. >>> # You can override this default by changing PARALLEL_JOBS here, or >>> # by specifying the -J flag to bulk/testport. >>> # >>> # Example to define PARALLEL_JOBS to one single job >>> # PARALLEL_JOBS=3D1 >>>=20 >>> -m >>>=20 >>=20 >> I perhaps misunderstood what was meant by "builders", confusing it >> with threads. Or maybe cores.... >>=20 >> Trying it now, hoping to see parallel core use.=20 >=20 > You do not seem to have mentioned use of: vm.pageout_oom_seq=3D > (just vm.pfault_oom_attempts=3D"-1"). You also mention "[with] > OOMA turned off" but no combination of settings actually > completely disables the possibility. >=20 >=20 > Based on notes in my poudriere.conf for a 2 GiByte RAM > context: >=20 > #NOTE: on 2 GiByte RAM contexts I've used: PARALLEL_JOBS=3D2 but > # two llvm*'s are likely the biggest combination that > # could occur in my context. lang/rust or other even > # larger build contexts need not be appropriate. I > # normally use ALLOW_MAKE_JOBS=3Dyes . > PARALLEL_JOBS=3D2 >=20 > So for the smaller RAM context: PARALLEL_JOBS=3D1 is a possibility. >=20 > On a 1 GiByte RPi2B v1.1 (armv7) I've used the combination: >=20 > PARALLEL_JOBS=3D2 > MAKE_JOBS_NUMBER_LIMIT=3D2 >=20 > so that no more than 4 generally active processes in > builders/JOBS overall. You have used MAKE_JOBS_NUMBER_LIMIT > before to build www/chromium (2018-Dec-18 report): >=20 > QUOTE > On Fri, Dec 14, 2018 at 05:59:21AM +0100, Jan Beich wrote: >>=20 >> MAKE_JOBS_NUMBER_LIMIT is a user variable, so you can either set in >> make.conf or Makefile.local e.g., >>=20 >> $ cat <<\. >>${__MAKE_CONF:-/etc/make.conf} >> .if ${.CURDIR:M*/www/chromium} >> MAKE_JOBS_NUMBER_LIMIT=3D2 >> .endif >=20 > Setting MAKE_JOBS_NUMBER_LIMIT=3D2 allowed www/chromium to compile = successfully over > several days. The -DBATCH option was used, in hopes it'd fetch the = right options.=20 > END QUOTE >=20 > As for allowing 4 processes in a build per builder > (a.k.a. per JOB) generally (for the 4 core context > without MAKE_JOBS_NUMBER_LIMIT in use) . . . >=20 > # By default MAKE_JOBS is disabled to allow only one process per cpu > # Use the following to allow it anyway > ALLOW_MAKE_JOBS=3Dyes >=20 > So with PARALLEL_JOBS=3D1 that would have a total of 4 > processes. >=20 > I'll note that threads is yet a separate issue. For example the > llvm linker might use 1 or 2 more threads than there are cores. > (These happen in one process.) poudriere does not have a control > over such tread usage by programs. Threads may or may not use > up significant RAM in total. >=20 >=20 > I also override a bunch of MAX_EXECUTION_TIME_<?>'s and > NOHANG_TIME: >=20 > # This defines the max time (in seconds) that a command may run for a = build > # before it is killed for taking too long. Default: 86400 > #MAX_EXECUTION_TIME=3D86400 > # Cortex-A53 and such are slow for the purpose, allow 4 times the = defaults: > MAX_EXECUTION_TIME=3D432000 >=20 > # This defines the time (in seconds) before a command is considered to > # be in a runaway state for having no output on stdout. Default: 7200 > #NOHANG_TIME=3D7200 > # Cortex-A53 and such are slow for the purpose, allow 4 times the = defaults: > # Also: boost-libs seems to have a long time with no output but it = making > # progress in parallel builds. > NOHANG_TIME=3D28800 >=20 > # Cortex-A53 and such are slow for the purpose, allow 4 times the = defaults: > MAX_EXECUTION_TIME_EXTRACT=3D14400 > MAX_EXECUTION_TIME_INSTALL=3D14400 > MAX_EXECUTION_TIME_PACKAGE=3D28800 > MAX_EXECUTION_TIME_DEINSTALL=3D14400 >=20 > I use: >=20 > USE_TMPFS=3Dno >=20 > in order to avoid tmpfs competing for RAM in these > small RAM contexts. >=20 Something else I will note: you reported for the 1 GiBYte RAM RPi3B use: QUOTE With OOMA turned off and 6 GB of swap END QUOTE Does the system generate a warning about being mistuned when the swap space is added: warning: total configured swap (??? pages) exceeds maximum recommended = amount (??? pages). Such likely would contribute to "swap blk zone exhausted" notices. I avoid setting up contexts that generate this warning about the configured swap by avoiding having too much swap space for the RAM available to manage it. As covered in multiple past exchanges, attempting to adjust kern.maxswzone to deal with this has other tradeoffs (less space for other kernel information) if I understand right. It takes more knowledge than I have to know if such tradeoffs are appropriate for a particular context. My memory is that when I move the Rock64 media to an RPi3B for an experiment, I use a 3 GiByte swap space to avoid the warning. (I have a 2nd swap partition that can be also put to use on the 4 GiByte RAM Rock 64 that goes unused on the RPi3B. It is rare that I do things sort of experiments. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CDFB92D-00A4-42E6-891C-B31F10C4842F>