Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Jul 2021 19:27:54 -0700
From:      Mark Millard via freebsd-ports <freebsd-ports@freebsd.org>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Too many pythons in poudriere
Message-ID:  <EE5052EA-0393-4AEB-A6A7-AE24F63F8E46@yahoo.com>
In-Reply-To: <CDDBF956-9647-464C-9114-CB1021C14699@yahoo.com>
References:  <044A7E63-2734-41F4-A1A2-AE5096C6A62C@yahoo.com> <CDDBF956-9647-464C-9114-CB1021C14699@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Jul-7, at 19:11, Mark Millard <marklmi at yahoo.com> wrote:

> On 2021-Jul-7, at 19:04, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> From: bob prohaska <fbsd_at_www.zefox.net> wrote on
>> Date: Wed, 7 Jul 2021 14:53:20 -0700 :
>>=20
>>> In trying to compile www/chromium under poudriere on a Pi3 there
>>> comes a point when five python2.7 sessions totaling more than 2 GB
>>> in size are running at once.
>=20
> I should have orignially noted right here that such is
> because of the use of: ALLOW_MAKE_JOBS=3Dyes
>=20
> You need to avoid that for the www/chromium build.
>=20
>>> Obviously, swap is swamped and the Pi3
>>> is running at a crawl. It hasn't givem up, however.
>>>=20
>>> Poudriere was started with -J 2 and make is limited to 2 jobs.=20
>>> Is there an analogous limit to how many pythons are loosed at
>>> once? It looks like there's only one builder, so it isn't
>>> obvious that -J 1 would help; I'll try it if this job stops
>>> prematurely.
>>=20
>> It will not help. There were no competing build jobs.
>>=20
>>> Progress, such as it is, can be seen at
>>>=20
>>> =
http://www.zefox.org/~bob/poudriere/data/logs/bulk/main-default/2021-07-05=
_14h06m26s/build.html
>>=20
>> By the time I looked it had run out of swap space:
>>=20
>> Swapinfo 100.00%
>>=20
>> and had stopped for build/timeout after 50:33:26 .
>>=20
>> For reference, including "swap_pager: out of swap space"
>> and "swp_pager_getswapspace(1): failed":
>>=20
>> QUOTE
>>=20
>> Wed Jul  7 15:20:34 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1831744    11456    99%
>> /dev/mmcsd0s2b    1843200  1832328    10872    99%
>> Total             3686400  3664072    22328    99%
>> . . .
>> Wed Jul  7 15:20:46 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1838356     4844   100%
>> /dev/mmcsd0s2b    1843200  1838928     4272   100%
>> Total             3686400  3677284     9116   100%
>> . . .
>> Wed Jul  7 15:20:56 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1841260     1940   100%
>> /dev/mmcsd0s2b    1843200  1841836     1364   100%
>> Total             3686400  3683096     3304   100%
>> . . .
>> Wed Jul  7 15:21:08 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843000      200   100%
>> /dev/mmcsd0s2b    1843200  1843124       76   100%
>> Total             3686400  3686124      276   100%
>> . . .
>> Jul  7 15:20:58 www kernel: swap_pager: out of swap space
>> . . .
>> Wed Jul  7 15:21:20 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843128       72   100%
>> /dev/mmcsd0s2b    1843200  1843140       60   100%
>> Total             3686400  3686268      132   100%
>> . . .
>> Jul  7 15:20:58 www kernel: swap_pager: out of swap space
>> . . .
>> Wed Jul  7 15:21:30 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843160       40   100%
>> /dev/mmcsd0s2b    1843200  1843116       84   100%
>> Total             3686400  3686276      124   100%
>> . . .
>> Jul  7 15:20:58 www kernel: swap_pager: out of swap space
>> . . .
>> Wed Jul  7 15:21:45 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843192        8   100%
>> /dev/mmcsd0s2b    1843200  1843192        8   100%
>> Total             3686400  3686384       16   100%
>> Jul  7 15:20:58 www kernel: swap_pager: out of swap space
>> Jul  7 15:21:33 www kernel: swp_pager_getswapspace(3): failed
>> . . .
>> Wed Jul  7 15:22:05 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843192        8   100%
>> /dev/mmcsd0s2b    1843200  1843192        8   100%
>> Total             3686400  3686384       16   100%
>> Jul  7 15:20:58 www kernel: swap_pager: out of swap space
>> Jul  7 15:21:33 www kernel: swp_pager_getswapspace(3): failed
>> . . .
>> Wed Jul  7 15:48:46 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843192        8   100%
>> /dev/mmcsd0s2b    1843200  1843192        8   100%
>> Total             3686400  3686384       16   100%
>> Jul  7 15:21:33 www kernel: swp_pager_getswapspace(3): failed
>> Jul  7 15:48:44 www kernel: swp_pager_getswapspace(1): failed
>> . . .
>> Wed Jul  7 15:57:01 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843192        8   100%
>> /dev/mmcsd0s2b    1843200  1843192        8   100%
>> Total             3686400  3686384       16   100%
>> Jul  7 15:21:33 www kernel: swp_pager_getswapspace(3): failed
>> Jul  7 15:48:44 www kernel: swp_pager_getswapspace(1): failed
>> . . .
>> Wed Jul  7 15:57:21 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843192        8   100%
>> /dev/mmcsd0s2b    1843200  1843192        8   100%
>> Total             3686400  3686384       16   100%
>> Jul  7 15:21:33 www kernel: swp_pager_getswapspace(3): failed
>> Jul  7 15:48:44 www kernel: swp_pager_getswapspace(1): failed
>> . . .
>> Wed Jul  7 16:31:52 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200  1843192        8   100%
>> /dev/mmcsd0s2b    1843200  1843192        8   100%
>> Total             3686400  3686384       16   100%
>> Jul  7 15:48:44 www kernel: swp_pager_getswapspace(1): failed
>> Jul  7 16:13:16 www kernel: swp_pager_getswapspace(3): failed
>> . . .
>> Wed Jul  7 17:47:11 PDT 2021
>> Device          1K-blocks     Used    Avail Capacity
>> /dev/da0s2b       1843200    32696  1810504     2%
>> /dev/mmcsd0s2b    1843200    33572  1809628     2%
>> Total             3686400    66268  3620132     2%
>>=20
>> END QUOTE
>>=20
>> It looks like for the configuration as it is, the
>> bulk build needs to build such that the load
>> average stays near 1 or less, avoiding near 2 or
>> more: no use of ALLOW_MAKE_JOBS=3Dyes during the bulk
>> build is one way to do that.
>>=20
>> In http://www.zefox.org/~bob/poudriere.conf (modified
>> for illustration):
>>=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
>> # List of packages that will always be allowed to use MAKE_JOBS
>> # regardless of ALLOW_MAKE_JOBS. This is useful for allowing ports
>> # which holdup the rest of the queue to build more quickly.
>> #ALLOW_MAKE_JOBS_PACKAGES=3D"pkg ccache py*"
>>=20
>> I'll also note that:
>>=20
>> http://www.zefox.org/~bob/poudriere.d/make.conf
>>=20
>> should not ever have the "ALLOW_MAKE_JOBS=3Dyes" that
>> is does: it is the wrong symbol for that kind of
>> context. poudriere converts ALLOW_MAKE_JOBS to something
>> else used in make.
>>=20
>> QUOTE (not modified for illustration)
>> ALLOW_MAKE_JOBS=3Dyes
>> MAKE_JOBS_NUMBER=3D2
>> #.if ${.CURDIR:M*www/chromium}
>> #MAKE_JOBS_NUMBER_LIMIT=3D2
>> #.endif
>> #.if ${.CURDIR:M*databases/sqlite3}
>> #MAKE_JOBS_NUMBER_LIMIT=3D2
>> #.endif
>> #.if ${.CURDIR:M*www/firefox}
>> #MAKE_JOBS_NUMBER_LIMIT=3D2
>> #.endif
>> END QUOTE
>=20

Looks like you could use:

MAKE_JOBS_NUMBER=3D2
.if ${.CURDIR:M*www/chromium}
MAKE_JOBS_UNSAFE=3D
.endif

to have www/chromium build as, essentially, -j1 .
One thing that MAKE_JOBS_UNSAFE=3D leads to is:
MAKE_JOBS_NUMBER=3D1

(Or you could put the MAKE_JOBS_UNSAFE=3D in the
www/chromium makefile .)

>>=20
>>>=20
>>> The last time www/chromium was compiled (using make) on this machine=20=

>>> I don't remember seeing such a python jam. If it happened at all the=20=

>>> Pi3 worked through it faster than presently.=20
>>=20
>> Which was the old make: -j1 vs. -j2 vs. -j3 vs. -j4 ?
>>=20
>> The ALLOW_MAKE_JOBS=3Dyes use is like -j4 in your 4 core
>> context. Lack of ALLOW_MAKE_JOBS=3Dyes is like -j1 .
>>=20
>> The -jN is for the number of make processes allowed to be
>> active per builder, including when there is only one builder.
>>=20
>> The ALLOW_MAKE_JOBS=3Dyes meant that there was likely a massive
>> amount of paging activity that was taking up much of the
>> time. That would still have been true with a much lager
>> swap space: it is a type of context where Lack of
>> ALLOW_MAKE_JOBS=3Dyes may well take notably less time to
>> finish.
>=20



=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?EE5052EA-0393-4AEB-A6A7-AE24F63F8E46>