On Dec 9, 2025, at 12:32, Mark Millard <[email protected]> wrote:

> On Dec 9, 2025, at 07:22, Rozhuk Ivan <[email protected]> wrote:
> 
>> On Mon, 8 Dec 2025 09:23:52 -0800
>> Mark Millard <[email protected]> wrote:
>> 
>>> But, as of yet, I've no good evidence for blaming
>>> jemalloc as a major contributor to those timing
>>> ratios --or for blaming any other specific part
>>> of 15.0 .
>> 
>> If you want to bench jmalloc - there is another ways to do that without 
>> building something.
>> Try to find some sythetic benchmarks.
>> Also jmalloc can be build without OS rebuild and linked with bench.
>> 
>> This 2 things can reduce time to tests, but it will eliminate OS integation 
>> factors.
>> Run same bench on different OS may give more info.
>> 
> 
> [I've eliminated direct Email to most everyone
> for this reply. There is not even minor new
> technical content.]
> 
> At this point I'm more likely to explore if I
> get similar ratios as ampere[13] do for some
> port-package builds that have the large ratios on
> ampere[13]. There are examples that are not as
> overall time consuming for ampere[13] as what I've
> already referenced (but are still non-trivial for
> the time taken). As stands, I do not have a good
> reproduce-the-issue context, much less one with
> build time frames I'd be willing to deal with in
> my environment.

Time-ratios similar to the ampere[13] ones for
15.0 vs. 14.3 (or 13.5) were easily repeatable
on the Microsoft Windows Dev Kit 2023 for doing
poudriere builds of the examples that I tried.

port-package builds tested for below: devel/cmake-core
TMPFS_BLACKLIST empty
ALLOW_MAKE_JOBS= in use (no explicit MAKE_JOBS_NUMBER like restrictions)
UFS context (except for what USE_TMPFS=all does in poudriere)
The below did not update /usr/ports/distfiles/ .

This does some exploration of USE_TMPFS=no vs.
USE_TMPFS=all as well, starting with
USE_TMPFS=no .

Listed in the sequence executed, first time
runs shown first:


USE_TMPFS=no . . .
(Note: The first times had other port-packages to build first.)

15.0 poudriere jail:
[00:37:37] [01] [00:12:30] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success

14.3 poudriere jail:
[00:28:26] [01] [00:09:38] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success

Approx. 1.30 time ratio (15.0's 12:30 / 14.3's 9:38)


USE_TMPFS=all (no tmpfs black list) . . .

14.3 poudriere jail:
[00:09:32] [03] [00:09:24] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success

15.0 poudriere jail:
[00:12:45] [03] [00:12:34] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success

Approx. 1.34 time ratio (15.0's/14.3's)


The following also prefixed the poudriere bulk -C command
with: time -l

15.0 poudriere jail:
[00:12:36] [04] [00:12:25] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success
. . .
      757.10 real      4613.06 user       251.09 sys
    866580  maximum resident set size
       131  average shared memory size
        27  average unshared data size
       234  average unshared stack size
  31148816  page reclaims
         0  page faults
         0  swaps
        14  block input operations
        36  block output operations
     37061  messages sent
     33671  messages received
      1758  signals received
    143987  voluntary context switches
    167515  involuntary context switches

14.3 poudriere jail:
[00:09:23] [01] [00:09:15] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success
. . .
      564.48 real      3449.89 user       204.14 sys
    822900  maximum resident set size
     64692  average shared memory size
       791  average unshared data size
       235  average unshared stack size
  28153497  page reclaims
         0  page faults
         0  swaps
         9  block input operations
        12  block output operations
     34180  messages sent
     31539  messages received
      1758  signals received
    131899  voluntary context switches
    132775  involuntary context switches

Approx. 1.34 time ratio (15.0's/14.3's)


USE_TMPFS=no . . . (again)

15.0 poudriere jail:
[00:13:01] [04] [00:12:27] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success
. . .
      784.89 real      4596.42 user       257.12 sys
    866600  maximum resident set size
       128  average shared memory size
        25  average unshared data size
       234  average unshared stack size
  31194466  page reclaims
      2371  page faults
         0  swaps
      3573  block input operations
      6687  block output operations
     37643  messages sent
     33840  messages received
      1756  signals received
    241548  voluntary context switches
    304249  involuntary context switches

14.3 poudriere jail:
[00:09:49] [04] [00:09:18] Finished   devel/cmake-core | cmake-core-3.31.9: 
Success
. . .
      592.83 real      3446.18 user       207.61 sys
    823880  maximum resident set size
     64712  average shared memory size
       787  average unshared data size
       236  average unshared stack size
  28176650  page reclaims
      2374  page faults
         0  swaps
      3481  block input operations
      5148  block output operations
     34521  messages sent
     31580  messages received
      1758  signals received
    218881  voluntary context switches
    255193  involuntary context switches

Approx. 1.34 time ratio (15.0's/14.3's)


Only some port-packages have time-ratios
near 1.34. For example, building lang/gcc15
does not on ampere[13]: closer to 1.1 as
I remember. (For the most part, lang/gcc15
does most of its own building based on a
smaller amount of clang-built code
to bootstrap.)


For reference:

# poudriere jail -l
JAILNAME          VERSION         OSVERSION ARCH          METHOD      TIMESTAMP 
          PATH
release14-aarch64 14.3-RELEASE-p6 1403000   arm64.aarch64 ftp-archive 
2025-12-09 12:54:06 /usr/local/poudriere/jails/release14-aarch64
. . .
release-aarch64   15.0-RELEASE    1500068   aarch64       pkgbase     
2025-12-06 11:34:39 /usr/local/poudriere/jails/release-aarch64
. . .

# ~/fbsd-based-on-what-commit.sh -C /usr/ports
bb7b77417165 (HEAD -> main, freebsd/main, freebsd/HEAD) www/hurl: update 7.0.0 
-> 7.1.0
Author:     Rodrigo Osorio <[email protected]>
Commit:     Rodrigo Osorio <[email protected]>
CommitDate: 2025-11-28 23:11:52 +0000
branch: main
merge-base: bb7b774171651eea0dc56376c225fe976231daa5
merge-base: CommitDate: 2025-11-28 23:11:52 +0000
n726888 (--first-parent --count for merge-base)

# uname -apKU
FreeBSD aarch64-main-pbase 16.0-CURRENT FreeBSD 16.0-CURRENT 
main-n281922-4872b48b175c GENERIC-NODEBUG arm64 aarch64 1600004 1600004

(That last was an official pkgbase distribution.)


===
Mark Millard
marklmi at yahoo.com


Reply via email to