Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Jun 2021 03:02:03 -0700
From:      Mark Millard via freebsd-arm <freebsd-arm@freebsd.org>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: Restraining poudriere
Message-ID:  <73E2FF0F-C814-4F0E-AEA2-DAFB0026C4AA@yahoo.com>
In-Reply-To: <3CDFB92D-00A4-42E6-891C-B31F10C4842F@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> <3CDFB92D-00A4-42E6-891C-B31F10C4842F@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2021-Jun-12, at 18:35, Mark Millard <marklmi at yahoo.com> wrote:

> On 2021-Jun-12, at 17:53, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> 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
>=20
> Something else I will note: you reported for the
> 1 GiBYte RAM RPi3B use:
>=20
> QUOTE
> With OOMA turned off and 6 GB of swap
> END QUOTE
>=20
> Does the system generate a warning about being mistuned
> when the swap space is added:
>=20
> warning: total configured swap (??? pages) exceeds maximum recommended =
amount (??? pages).
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20

I took a look via https://pkg-status.freebsd.org and the FreeBSD
servers have been building aarch64 llvm10-10.0.1_5 since mid-Feb.
without such failures. (Previously llvm10-10.0.1_4 was building.)=20

=
/wrkdirs/usr/ports/devel/llvm10/work/llvm-10.0.1.src/lib/Target/Hexagon/Di=
sassembler/HexagonDisassembler.cpp

is used. It makes me wonder if you have a cached distfile
that is corrupted or some such. (The servers use poudriere
to do the builds and they do not disable targets.)

I do not know if the logfile would give a hint about that or not.

I do not remember your indicating what /usr/ports commit
poudriere is using --or which way you have poudriere configured
to get a ports tree to work with (or related configuration
information).


=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?73E2FF0F-C814-4F0E-AEA2-DAFB0026C4AA>