Yuri <yuri_at_FreeBSD.org> wrote on Date: Mon, 24 Feb 2025 04:42:13 UTC : > There is the MAX_MEMORY setting in /usr/local/etc/poudriere.conf that is > commented out by default. > Is it set in the poudriere on the builder servers? > What happens when it is set to some limit and this limit is exceeded? > Are these processes swapped or killed in such case?
main [so: 15 as stands] does not swap out kernel stacks any more. There is only paging to/from swap space. I'm not aware of any parameter for causing a process specific size that leads to that specific process starting to page. Paging is based on more of a system level criteria. > I am looking into possible reasons why one port fails with runaway error > on arm64. What port/package? I happend to have done a "bulk -ca" test recently and could look at the log for that package's build. The style of handling was to set up to allow high load averages relative to the number of cores: one builder per core but each active builder allowed that same number of processes: core-count squared process possible, even when everything is respecting the limits. (Some packages do not for a time and end up with more processes/threads.) Overall the 'bulk -ca' activity was spread over something like 56 to 60 hours. This was in a VM. (14 Parallels VM cores on a MacBook Pro M4 MAX with 16 cores. 104 GiBytes of Parallels RAM of 128 GiBytes in the system. RAM+SWAP being 351 GiBytes or so total. But the test showed that high volume paging in the VM did not mix well with the kernel's "taking too long" sorts of criteria for starting kills. Luckily my normal build activities can avoid such significant paging.) > One possible reason is that MAX_MEMORY is set and this process is > getting swapped in and out which makes it to run "forever". === Mark Millard marklmi at yahoo.com