Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Apr 2023 12:16:39 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   armv8.2-A+ tuned FreeBSD kernels and buildworld buildkernel times: an example
Message-ID:  <177A2369-1751-4DB5-B316-E140ED156B6E@yahoo.com>
References:  <177A2369-1751-4DB5-B316-E140ED156B6E.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Context: all world's and kernel's involved/built are non-debug style.

Note: clang15 through LLVM main (so far) has errors in both directions
for the features for cortex-a78c. So I also used +flagm+nofp16fml .
(The cortex-x1c also has such problems, but the details are
different.)

Notation in table below:
CA72:  matching world or kernel had been built using -mcpu=3Dcortex-a72
CA78C: matching world or kernel had been built using =
-mcpu=3Dcortex-a78C+flagm+nofp16fml

System: Windows Dev Kit 2023 (4 cortex-a78c's and 4 cortex-x1c's):
(both: armv8.2-A with a few more modern features)

Times to build system from scratch (buildworld buildkernel from same
sources) . . .

System running:                   World built in: kernel built in:
CA72  kernel, CA72  world                6601 sec          597 sec
CA78C kernel, CA78C world                4680 sec          413 sec
CA78C kernel, CA72  world (chroot)       4715 sec          422 sec

The CA72/CA72 is from before I'd built the CA78C world and kernel.
All builds used -j8 . None had competing activity on the machine.

What this suggests is having an explicitly armv8.2+ tuned kernel
makes a notable difference for -j8 buildworld buildkernel times
on aarch64.

The Windows Dev Kit 2023 is the first (and only) armv8.1+ based
system that I've have access to. So testing such properties is
limited to the one context.

Also, I've not had access to the Windows Dev Kit 2023 for long:
first experiments.


Notes on my historically-usual aarch64 builds:

On cortex-a72 hardware, my context is -mcpu=3Dcortex-a72 based. This
once exposed a lack of sufficient synchronization in a palce in
the USB subsystem. (Running the same system on cortex-a53 hardware
did not fail. Running -mcpu=3Dcortex-a53 based world+kernel on a
cortex-a72 did not fail. A cortex-a53 hardware running the
-mcpu=3Dcortex-a53 based world+kernel did not fail.)

Until the hardware failed, there was a time when I also had
access to a cortex-a57 FreeBSD system.

I do not do such -mcpu=3D tailoring on the only FreeBSD amd64 that
I've access to, a ThreadRipper 1950X. I do such only for the lower
end systems that I have access to. My aarch64 access is all to
lower end, not upper end.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?177A2369-1751-4DB5-B316-E140ED156B6E>