Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 2017 16:54:36 -0500
From:      Laurent Cimon <laurent@nuxi.ca>
To:        Mark Millard <markmi@dsl-only.net>
Cc:        freebsd-arm@freebsd.org, freebsd-hackers@freebsd.org, freebsd-current@freebsd.org
Subject:   Re: rpi2 hangup during poudriere build: lots of pfault wmseg status
Message-ID:  <FEC2F023-58D2-423C-B17B-2CDBEA76E299@nuxi.ca>
In-Reply-To: <05BEA04B-249B-4E7D-855A-46DA1A0DEA16@dsl-only.net>
References:  <05BEA04B-249B-4E7D-855A-46DA1A0DEA16@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> On Dec 6, 2017, at 00:57, Mark Millard <markmi@dsl-only.net> wrote:
>=20
> I tried to build some ports on a rpi2
> (via poudriere) but it hung up:
> Ethernet and normal console use. (Note:
> the root file system is on a USB SSD
> and the swap partition is also on that
> USB SSD.)
>=20
> But ~^b worked for getting to the db>
> prompt on the console.
>=20
> =46rom there a ps suggests that it got hung
> up in pfault activity. (Possibly insufficient
> RAM+swap-partition space?) But it is not
> clear to me that it should end up hung up
> vs. killing processes or other such.

Hi,

=46rom what I know the raspberry pis use the same controller for =
ethernet and
the USB hub on which you=E2=80=99re hosting an SSD. It seems like you =
make very heavy
use of the USB ports, and all of the resources used by poudriere except =
for the
CPU and the (very limited) memory that=E2=80=99s not in swap is attached =
to them. If you
really didn=E2=80=99t have enough memory and swap, the linkers =
would=E2=80=99ve been stopped.

I think it might just be a swap death. Poudriere compiles and fetches in =
parallel
a lot, ethernet and disk I/O is slow because it=E2=80=99s very limited, =
so linking takes
longer. You end up linking a few very big binaries at the same time, and =
they
all fight for the memory, to get out of swap through page faults, but =
there
are too many page faults, all too big, requesting for more CPU time =
that=E2=80=99s
allowed to them.

This would explain why you have 3 linkers waiting on a page fault out of =
the 4
CPUs poudriere allows builds on, on top of the awk processes. It would =
also
explain why you had easy access to the debugger: it was in memory =
already with
the kernel.

I=E2=80=99d advise you to disable parallel builds and see if it happens =
again,
but it would make building much slower. Using makejobs would help if you
can afford watching the build. Otherwise be patient, it should resolve =
itself
eventually, but it will take a while and it will happen again.

Good luck,

Laurent=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FEC2F023-58D2-423C-B17B-2CDBEA76E299>