Re: devel/llvm13 failed to reclaim memory on 8 GB Pi4 running -current
Date: Fri, 28 Jan 2022 01:43:48 UTC
On 2022-Jan-27, at 15:30, bob prohaska <fbsd@www.zefox.net> wrote: > On Thu, Jan 27, 2022 at 02:21:44PM -0800, Mark Millard wrote: >> >> Okay. I just started a poudriere bulk devel/llvm13 build >> in a ZFS context: >> >> . . . >> [00:00:37] Pkg: +BE_AMDGPU -BE_FREEBSD +BE_NATIVE -BE_STANDARD +BE_WASM +CLANG +DOCS +EXTRAS -FLANG +LIT +LLD +LLDB +MLIR -OPENMP -PYCLANG >> [00:00:37] New: +BE_AMDGPU -BE_FREEBSD -BE_NATIVE +BE_STANDARD +BE_WASM +CLANG +DOCS +EXTRAS +FLANG +LIT +LLD +LLDB +MLIR +OPENMP +PYCLANG >> . . . >> [00:01:27] [01] [00:00:00] Building devel/llvm13 | llvm13-13.0.0_3 >> > > Is this ARM hardware, or an emulator? 8 GiByte RPi4B, USB3 NVMe media with a ZFS partition. The content is a slightly modified copy of the HoneyComb's PCIe slot Optane media. The UFS-based 8 GiByte RPi4B is also based on copying from the same Optane media, both for the system materials and various ports/packages/pouriere related materials. (Not, necessarily, other things.) > I've been using plain old make in /usr/ports/devel, > might it be informative to try a poudriere build as well? The Pkg:, New:, and llvm13 lines I listed are poudriere(-devel) output. I am doing my builds via poudriere. ALLOW_PARALLEL_JOBS= and USE_TMPFS="data" in use. I have a context in which almost all prerequisites had already been built. (The change in options lead to 2 very small ports to build before devel/llvm13's started in a builder.) (You might not have a jail that already has the prerequisites.) > One would expect the added overhead to increase memory use. > Well, from the context I started in, only devel/llvm13 is being built once it starts. Once it gets to the build phase (after dependencies and such are set up), there is not much overhead because the only activity is the one builder and it is only building llvm13 --via make in the builder. At the end there would be extra activity as poudriere finishes up. During the build phase, I only expect minor overhead from poudriere monitoring the build logs and such. I expect that the mere fact that a poudriere jail is in use for the builder to execute in does not contribute to significantly increasing the system's memory use or changing the system's memory use pattern. There are some other differences my context. The instances of main [so: 14] are non-debug builds (but with symbols). The builds are optimized for the RPi4B (and others) via use of -mcpu=cortex-a72 usage. My /usr/main-src/ does have some personal changes in it. (Some messaging about the kills is part of that.) The RPi4B's are using: over_voltage=6 arm_freq=2000 sdram_freq_min=3200 force_turbo=1 (There are heat-sinks, fans, and good power supplies.) The media in use are USB3 1 TB Samsung Portable SSD T7 Touch's. I'm unlikely to see "swap_pager: indefinite wait buffer:" notices if the cause was based on the media performance. (You have spinning rust, if I remember right.) I do not have a monitoring script making a huge log file during the build. So less is competing for media access or leading to other overheads. (But, as I remember, you have gotten the problem without having such a script running.) === Mark Millard marklmi at yahoo.com