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>