Re: devel/llvm13 failed to reclaim memory on 8 GB Pi4 running -current [UFS context: used the whole swap space too]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Fri, 28 Jan 2022 18:56:32 UTC
On 2022-Jan-28, at 08:15, bob prohaska <fbsd@www.zefox.net> wrote:

> On Thu, Jan 27, 2022 at 11:40:46PM -0800, Mark Millard wrote:
> [massive edit for readability]
> 
>>>>> What are you using for each of:
>>>>> vm.pageout_oom_seq ?
>>>>> vm.pfault_oom_attempts ?
>>>>> vm.pfault_oom_wait ?
> 
> For the case of devel/llvm13 (Pi4, -current, make) defaults.
> Those seem to be:
> vm.pageout_oom_seq: 12
> vm.pfault_oom_attempts: 3
> vm.pfault_oom_wait: 10
> With 8 GB RAM I didn't anticipate memory problems 8-(

Well, having a swap space suggests otherwise.

On these small board computers, for doing
what you do, if you think it appropriate to
have a swap space, you probably also want
at least something like:

vm.pageout_oom_seq=120

This was the original setting that made the
difference for your builds, back when Mark
Johnston first helped use get buildworld
buildkernel working on the arm SBCs.

This would make it try more before it classifies
the context as having the "failed to reclaim
memory" condition, including when the swap is not
full. Getting what is now correctly labeled as
"failed to reclaim memory" before swap was full
was the original problem as I remember.

> For the case of practical interest (Pi3, stable/13, buildworld):
> vm.pageout_oom_seq: 4096
> vm.pfault_oom_attempts: 20
> vm.pfault_oom_wait: 10
> 
> It appears I should increase the latter two for starters.

vm.pfault_oom_attempts and vm.pfault_oom_wait may be
related to what the consequences are assocaited for your
indefinite wait buffer notices.

I'm unsure of specifics for adjusting these as I've
been able to fit in my RAM+SWAP configurations and
could use vm.pfault_oom_attempts=-1 validly. Plus,
I'm not using spinning rust. So I've never explored
setting this pair to non-defaults.

> Can the Fortran feature be turned off in buildworld?

buildworld does not build devel/llvm13 and does not
build flang. flang is not part of FreeBSD and so
FreeBSD's llvm materials are not configured to build
flang.

> That's the troublemaker for me.

Not for buildworld. But, it is for building
devel/llvm13 .

I've not dealt with setting up a 2 GiByte swap
test context for a RPi3B. I probably will not do
so until after I'm done doing these devel/llvm13
tests with flang involved. (I normally have flang
turned off in the devel/llvm13 options.)

===
Mark Millard
marklmi at yahoo.com