On Dec 6, 2025, at 14:25, Warner Losh <[email protected]> wrote:
> On Sat, Dec 6, 2025, 3:06 PM Mark Millard <[email protected]> wrote:
>
>> On Dec 6, 2025, at 06:14, Mark Millard <[email protected]> wrote:
>>
>> > Mateusz Guzik <mjguzik_at_gmail.com> wrote on
>> > Date: Sat, 06 Dec 2025 10:50:08 UTC :
>> >
>> >> I got pointed at phoronix:
>> >> https://www.phoronix.com/review/freebsd-15-amd-epyc
>> >>
>> >> While I don't treat their results as gospel, a FreeBSD vs FreeBSD test
>> >> showing a slowdown most definitely warrants a closer look.
>> >>
>> >> They observed slowdowns when using iperf over localhost and when
>> >> compiling llvm.
>> >>
>> >> I can confirm both problems and more.
>> >>
>> >> I found the profiling tooling for userspace to be broken again so I
>> >> did not investigate much and I'm not going to dig into it further.
>> >>
>> >> Test box is AMD EPYC 9454 48-Core Processor, with the 2 systems
>> >> running as 8 core vms under kvm.
>> >> . . .
>> >
>> >
>> >
>> > Both of the below are from ampere3 (aarch64) instead, its
>> > 2 most recent "bulk -a" runs that completed, elapsed times
>> > shown for qt6-webengine-6.9.3 builds:
>> >
>> > 150releng-arm64-quarterly qt6-webengine-6.9.3 53:33:46
>> > 135arm64-default qt6-webengine-6.9.3 38:43:36
>> >
>> > For reference:
>> >
>> > Host OSVERSION: 1600000
>> > Jail OSVERSION: 1500068
>> >
>> > vs.
>> >
>> > Host OSVERSION: 1600000
>> > Jail OSVERSION: 1305000
>> >
>> > The difference for the above is in the Jail's world builds,
>> > not in the boot's (kernel+world) builds.
>> >
>> >
>> > For reference:
>> >
>> >
>> > https://pkg-status.freebsd.org/ampere3/build.html?mastername=150releng-arm64-quarterly&build=88084f9163ae
>> >
>> > build of www/qt6-webengine | qt6-webengine-6.9.3 ended at Sun Nov 30
>> > 05:40:02 -00 2025
>> > build time: 2D:05:33:52
>> >
>> >
>> > https://pkg-status.freebsd.org/ampere3/build.html?mastername=135arm64-default&build=f5384fe59be6
>> >
>> > build of www/qt6-webengine | qt6-webengine-6.9.3 ended at Sat Nov 22
>> > 15:33:34 -00 2025
>> > build time: 1D:14:43:41
>>
>>
>> Expanding the notes to before and after jemalloc 5.3.0
>> was merged to main: beefy18 was the main-amd64 builder
>> before and somewhat after the jemalloc 5.3.0 merge from
>> vendor branch:
>>
>> Before: p2650762431ca_s51affb7e971 261:29:13 building 36074 port-packages,
>> start 05 Aug 2025 01:10:59 GMT
>> ( jemalloc 5.3.0 merge from vendor
>> branch: 15 Aug 2025)
>> After : p9652f95ce8e4_sb45a181a74c 428:49:20 building 36318 port-packages,
>> start 19 Aug 2025 01:30:33 GMT
>>
>> (The log files are long gone for port-packages built.)
>>
>> main-15 used a debug jail world but 15.0-RELEASE does not.
>>
>> I'm not aware of such a port-package builder context for a
>> non-debug jail world before and after a jemalloc 5.3.0 merge.
>>
> A few months before I landed the jemalloc patches, i did 4 or 5 from dirt
> buildworlds. The elasped time was, iirc, with 1 or 2%. Enough to see maybe a
> diff with the small sample size, but not enough for ministat to trigger at
> 95%. I didn't recall keeping the data for this and can't find it now. And I'm
> not even sure, in hindsight, I ran a good experiment. It might be related, or
> not, but it would be easy enough for someone to setup a two jails: one just
> before and one just after. Build from scratch the world (same hash) on both.
> That would test it since you'd be holding all other variables constant.
>
> When we imported the tip of FreeBSD main at work, we didn't get a cpu change
> trigger from our tests that I recall...
The range of commits look like:
• git: 9a7c512a6149 - main - ucred groups: restore a useful comment Eric
van Gyzen
• git: bf6039f09a30 - main - jemalloc: Unthin contrib/jemalloc Warner Losh
• git: a0dfba697132 - main - jemalloc: Update jemalloc.xml.in per
FreeBSD-diffs Warner Losh
• git: 718b13ba6c5d - main - jemalloc: Add FreeBSD's updates to
jemalloc_preamble.h.in Warner Losh
• git: 6371645df7b0 - main - jemalloc: Add JEMALLOC_PRIVATE_NAMESPACE for
the libc namespace Warner Losh
• git: da260ab23f26 - main - jemalloc: Only replace
_pthread_mutex_init_calloc_cb in private namespace Warner Losh
• git: c43cad871720 - main - jemalloc: Merge from jemalloc 5.3.0 vendor
branch Warner Losh
• git: 69af14a57c9e - main - jemalloc: Note update in UPDATING and RELNOTES
Warner Losh
I've started a build of a non-debug 9a7c512a6149 world
to later create a chroot to do a test buildworld in.
I'll also do a build of a non-debug 69af14a57c9e world
to later create the other chroot to do a test
buildworld in.
non-debug means my use of:
WITH_MALLOC_PRODUCTION=
WITHOUT_ASSERT_DEBUG=
WITHOUT_PTHREADS_ASSERTIONS=
WITHOUT_LLVM_ASSERTIONS=
I've used "env WITH_META_MODE=" as it cuts down on the
volume and frequency of scrolling output. I'll do the
same later.
If there is anything you want controlled in a different
way, let me know.
The Windows Dev Kit 2023 is booted (world and kernel)
with:
# uname -apKU
FreeBSD aarch64-main-pbase 16.0-CURRENT FreeBSD 16.0-CURRENT
main-n281922-4872b48b175c GENERIC-NODEBUG arm64 aarch64 1600004 1600004
which is from an official pkgbase distribution. So the
boot-world is a debug world but the boot-kernel is not.
The Windows Dev Kit 2023 will take some time for such
-j8 builds and I may end up sleeping in the middle of
the sequence someplace. So it may be a while before
I've any comparison/contrast data to report.
===
Mark Millard
marklmi at yahoo.com