Re: Some notes on the new ampere4's initial large-build time frames for port-packges

From: Philip Paeps <philip_at_freebsd.org>
Date: Fri, 09 Jan 2026 08:19:54 UTC
On 2026-01-09 07:02:41 (+0800), Mark Millard wrote:
> It was reported that ampere4 has 160 cores (two 80 core sockets) but
> only 256 GiBytes of RAM, so only about 1.6 GiBytes/core (mean), ignoring
> overheads and such.  This likely help explain there being only 24
> builders in use and logs showing:

We limit the number of build jobs like this in poudriere.conf:

calc_builders() {
        local GB_PER_BUILDER ncpu arcsize physmem swap vmem emem

        GB_PER_BUILDER=12
        ncpu=$(/sbin/sysctl -n hw.ncpu)
        PREPARE_PARALLEL_JOBS=$((ncpu + 5))

        # Tune BUILD_PARALLEL_JOBS based on amount of VM.
        physmem=$(($(/sbin/sysctl -n hw.physmem) / 1024 / 1024 / 1024))
        arcsize=$(($(/sbin/sysctl -n vfs.zfs.arc_max) / 1024 / 1024 / 1024))
        swap=$(($(/sbin/sysctl -n vm.swap_total) / 1024 / 1024 / 1024))
        vmem=$((physmem + swap))
        # Calculate "effective" memory; Ignore greedy ARC.
        emem=$((vmem - arcsize))
        if [ ${emem} -lt 0 ]; then
                # The ARC is probably too big.
                emem=$((emem + arcsize))
        fi
        # Give each builder GB_PER_BUILDER
        BUILD_PARALLEL_JOBS=$((emem / GB_PER_BUILDER))
        if [ ${BUILD_PARALLEL_JOBS} -gt ${ncpu} ]; then
                BUILD_PARALLEL_JOBS=${ncpu}
        elif [ ${ncpu} -ge $((2 * BUILD_PARALLEL_JOBS)) ]; then
                ALLOW_MAKE_JOBS=yes
        fi
        if [ $# -gt 0 ]; then
                echo "calc_builders(): ncpu=${ncpu} physmem=${physmem} arcsize=${arcsize} JOBS=${BUILD_PARALLEL_JOBS}" >&2
        fi
}

> I've also seen SWAP at 100% used, not that I know the amount of SWAP at any time or if SWAP has been reconfigured since I saw that.

All builders since beefy20 (I think) have 48G swap in a gmirror across at least one pair of disks.

> It has been reported that ampere5 currently has less RAM than ampere4.
> It as only been configured for 13 builders, so like ampere[123] for the
> builder count. (But it was reported ampere5 also has 160 cores, unlike
> ampere[123]'s each having 32 cores, and that ampere5 will have more RAM
> added.)

ampere4 and ampere5 are identical except that ampere4 has 16*16G DIMMs and ampere5 has 8*32G DIMMs (as of this morning).

https://people.freebsd.org/~philip/ampere4-dmesg.txt
https://people.freebsd.org/~philip/ampere5-dmesg.txt

ampere4 will get the same build as ampere5 when it finishes its current build.

Philip