From owner-freebsd-arm@freebsd.org Sun Sep 27 18:07:57 2020 Return-Path: Delivered-To: freebsd-arm@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D49642330F for ; Sun, 27 Sep 2020 18:07:57 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic316-54.consmr.mail.gq1.yahoo.com (sonic316-54.consmr.mail.gq1.yahoo.com [98.137.69.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Bztt41RjFz43Td for ; Sun, 27 Sep 2020 18:07:55 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: .EaI3z0VM1ntd_6gzHI1.tXLeDEtMl8quCDW5zxJgZ2kk5r3FnrO.KiWlcxPYgt PMHF7bmVzK225lmHqrO5q_XlwweHKuPteXrz.MO27lj4aDGmYcFzbTQkEe3EFItxEkUahXt_QJNl 8Uv2kOmmj6ne6NUSVmZhJ7rGOs_3girvFQUvRyNqRqGumuqH8jDyWODPL5reDSIExq1hiSx5ppYn oGuJXzSMoHBCHyyKvWci1ZUUdWt9fYFf7wsCi4q3Ei9bJW2NLwCKbvF2YrWgyZoq3JkOdLy89WFZ r62ySWVq0HzRAOIH2.jWaVJQq8zg_YcMHYdxIm8fa5pOOEc685bYdl1CekAKjy_k2hiS53.Rakw7 U99NvZzMzDDqJt3A._SxP0cBMwanyfCZQ5K.fe5lozrnaH1wgjEv9J_iHtHLgsNfFqqMmhNzrmSA BpSiQTeYEyBWkmor.dO8RUD4QbaFyjVyN1cIIgaLv39m2tc1ZHRhxUTtXfWQOwTGvxV7Onerqtl_ QG6khn_Y6Hk_EVq0xbwZ25nnf1twfzz7R5La1ICAJ4BE4f1Nn0LLPw2qGQW2JUheyrQtC3kVtkMP on.UXWbHgcb1PLQLXdeEUu9M1noVxtNdm3c0jXciUvilB6yuN9rNGQJO6nsQ7SPs.Mpy.83ghq28 25eZAReVPHffrMscWb9MtXbLYhJ3n65CmC7CsHC2G92XDprBohsYrpRJb2qtmFwSfq7xZSRjwWSb 1NLok5QLwpBhZh2KE5sU_gk1E57q7JnbThnGFSRG5zUGas0ZwqjQbPFtQd5c7ZzgxplpEXXmXhS1 pB5yUz5sPHDTHUTAsqsW9IJd69UFA9ZB8HUCzih06U.88n7jnEiV5GKZK7kE9IpPEStBVlnf0oZS VkRlvnvCBo5oGBGUOsg5JXkneQDSRW_sHWWbx6JMd1NAF0dhjIaARqs0zUvweNb1ldjoxSgB8baP vbC6mjdrN0BAmetDTH_61ydnnPEeyqQZpR52sesaIVTkJ7xcfE0dSuiBpl6S1Mgry1GrT3FDFhS7 JfMRbxUWN7kNF_58WiTSwZlNzjGJO32XZ75X3ldo2RquUnbDvBnsve8tXFXBYsZy9bH6YFAq.pU_ uI9zBw51aVXpRGwQL.D9GC18N07u285Qwuno6X.HH8.YprWnDZPpqh3_8bBJ9ltFzJLeeGrei8p5 z8CMnhcCWQM_YqHpOiSP2OOVoTlCaYEAr2uMV7Wg90yx2QV8wz.n_vporoG3gxY_FHBlwBBfOp85 sgHK7cIujQnwqjD.yO2niJj0snthaazEzmiX0FKi_28uJkSZ33i.W6E9GNdFL4ZhljTORx.S4doh VfCy9yVTbHCgTuWXP4yEhia7Ce3pPiWaH9Jnuxv7_vybFbFqU5hYY05fSD7XvozWlUDEE3SL3xe8 T8y5QxWqu8.hQgR2McFTBukboGqwzmzJBrVljsiZfUBFt1oF8Yj41_ZDb6JfuF6LuwBo6uRhQnmG Eg1alhu.O6JlAhzjX5PJD.GE9_OhEZqiM1T2gf6TwYzRNo9yYhtExRPTi Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.gq1.yahoo.com with HTTP; Sun, 27 Sep 2020 18:07:54 +0000 Received: by smtp404.mail.ne1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 1ba1b907f7e1b77d4bf4a358406fd02d; Sun, 27 Sep 2020 18:07:52 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\)) Subject: Re: RPi4B buildworld buildkernel times for already installed system being -mcpu=cortex-a72 vs. -mcpu=cortex-a53 based Date: Sun, 27 Sep 2020 11:07:51 -0700 References: <4E155E94-3AA0-464D-A1E9-45A7827537ED@yahoo.com> To: freebsd-arm In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3608.120.23.2.1) X-Rspamd-Queue-Id: 4Bztt41RjFz43Td X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.03 / 15.00]; FREEMAIL_FROM(0.00)[yahoo.com]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; NEURAL_HAM_SHORT(-0.51)[-0.510]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.991]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.02)[-1.025]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.30:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.30:from]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[freebsd-arm] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Sep 2020 18:07:57 -0000 On 2020-Sep-20, at 18:40, Mark Millard wrote: > On 2020-Sep-20, at 18:32, Mark Millard wrote: >=20 >> The following are from scratch buildworld buildkernel rebuilds >> on a RPi4B (head -r363590 context). >>=20 >> ENVIRONMENT: -mcpu=3Dcortex-a72 based world and kernel running = already, RPi4B @ 2G Hz, >> Restricted to 3 GiByte RAM, -j3: >>=20 >> World built in 37469 seconds, ncpu: 4, make -j3 >> Kernel(s) GENERIC-NODBG built in 2474 seconds, ncpu: 4, make -j3 >>=20 >> ENVIRONMENT: -mcpu=3Dcortex-a53 based kernel running, RPi4B @ 2G Hz, >> Restricted to 3 GiByte RAM, -j3: >>=20 >> World built in 44034 seconds, ncpu: 4, make -j3 >> Kernel(s) GENERIC-NODBG built in 2895 seconds, ncpu: 4, make -j3 >>=20 >> So a little under 11.1 hr total vs. a little over 13.0 hr total, >> a somewhat over 50 min improvement. >=20 > "a somewhat over 1hr 50 min improvement" is what I should have > managed to type. >=20 >> (A xhci patch finally allowed me to boot -mcpu=3Dcortex-a72 >> based kernel builds on the RPi4B: The xhci event ring >> initialization code was missing a usb_bus_mem_flush_all >> call previously.) >>=20 >>=20 >> Supporting details: >>=20 >> (e-mail based spacing changes expected below) >>=20 >> # diff -u = ~/src.configs/src.conf.cortexA72-clang-bootstrap.aarch64-host = ~/src.configs/src.conf.cortexA53-clang-bootstrap.aarch64-host >> --- /root/src.configs/src.conf.cortexA72-clang-bootstrap.aarch64-host = 2020-03-13 22:29:25.470155000 -0700 >> +++ /root/src.configs/src.conf.cortexA53-clang-bootstrap.aarch64-host = 2020-03-13 22:29:25.469455000 -0700 >> @@ -49,9 +49,9 @@ >> # Use of the .clang 's here avoids >> # interfering with other CFLAGS >> # usage, such as ?=3D usage. >> -CFLAGS.clang+=3D -mcpu=3Dcortex-a72 >> -CXXFLAGS.clang+=3D -mcpu=3Dcortex-a72 >> -CPPFLAGS.clang+=3D -mcpu=3Dcortex-a72 >> -ACFLAGS.arm64cpuid.S+=3D -mcpu=3Dcortex-a72+crypto >> -ACFLAGS.aesv8-armx.S+=3D -mcpu=3Dcortex-a72+crypto >> -ACFLAGS.ghashv8-armx.S+=3D -mcpu=3Dcortex-a72+crypto >> +CFLAGS.clang+=3D -mcpu=3Dcortex-a53 >> +CXXFLAGS.clang+=3D -mcpu=3Dcortex-a53 >> +CPPFLAGS.clang+=3D -mcpu=3Dcortex-a53 >> +ACFLAGS.arm64cpuid.S+=3D -mcpu=3Dcortex-a53+crypto >> +ACFLAGS.aesv8-armx.S+=3D -mcpu=3Dcortex-a53+crypto >> +ACFLAGS.ghashv8-armx.S+=3D -mcpu=3Dcortex-a53+crypto >>=20 >>=20 >> The .amd64-host files are similar for doing cross builds. >>=20 >> I also use +=3D in secure/lib/libcrypto/Makefile : >>=20 >> # svnlite diff /usr/src/secure/lib/libcrypto/Makefile >> Index: /usr/src/secure/lib/libcrypto/Makefile >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- /usr/src/secure/lib/libcrypto/Makefile (revision 365919) >> +++ /usr/src/secure/lib/libcrypto/Makefile (working copy) >> @@ -20,7 +20,7 @@ >> SRCS+=3D o_str.c o_time.c threads_pthread.c uid.c >> .if defined(ASM_aarch64) >> SRCS+=3D arm64cpuid.S armcap.c >> -ACFLAGS.arm64cpuid.S=3D -march=3Darmv8-a+crypto >> +ACFLAGS.arm64cpuid.S+=3D -march=3Darmv8-a+crypto >> .elif defined(ASM_amd64) >> SRCS+=3D x86_64cpuid.S >> .elif defined(ASM_arm) >> @@ -35,7 +35,7 @@ >> SRCS+=3D aes_cbc.c aes_cfb.c aes_ecb.c aes_ige.c aes_misc.c = aes_ofb.c aes_wrap.c >> .if defined(ASM_aarch64) >> SRCS+=3D aes_core.c aesv8-armx.S vpaes-armv8.S >> -ACFLAGS.aesv8-armx.S=3D -march=3Darmv8-a+crypto >> +ACFLAGS.aesv8-armx.S+=3D -march=3Darmv8-a+crypto >> .elif defined(ASM_amd64) >> SRCS+=3D aes_core.c aesni-mb-x86_64.S aesni-sha1-x86_64.S = aesni-sha256-x86_64.S >> SRCS+=3D aesni-x86_64.S vpaes-x86_64.S >> @@ -242,7 +242,7 @@ >> SRCS+=3D ofb128.c wrap128.c xts128.c >> .if defined(ASM_aarch64) >> SRCS+=3D ghashv8-armx.S >> -ACFLAGS.ghashv8-armx.S=3D -march=3Darmv8-a+crypto >> +ACFLAGS.ghashv8-armx.S+=3D -march=3Darmv8-a+crypto >> .elif defined(ASM_amd64) >> SRCS+=3D aesni-gcm-x86_64.S ghash-x86_64.S >> .elif defined(ASM_arm) >>=20 >> The RPi4B is using: >>=20 >> over_voltage=3D6 >> arm_freq=3D2000 >>=20 >> and was booted via uefi/ACPI. >>=20 >> I have not repeated the -j4 or other -jN comparisons that >> I reported in the past. The -mcpu=3Dcortex-a53 figures are >> from the past. The following new timing is based on head -r365932 rebuilding itself where the 8 GiByte RPi4B config.txt ended with: over_voltage=3D6 arm_freq=3D2000 sdram_freq_min=3D3200 and the boot was via u-boot, no RAM restriction. (The sdram_freq_min assignment does not seem to do anything for rpi4-uefi-devel v1.20 uefi/ACPI based booting.) /etc/sysctl.conf has: dev.cpu.0.freq=3D2000 . No use of powerd or other such. ENVIRONMENT: -mcpu=3Dcortex-a72 based world and kernel running already, 8 GiBYte RPi4B @ 2G Hz with sdram_freq_min=3D3200, u-boot style boot, = -j3: World built in 31852 seconds, ncpu: 4, make -j3 Kernel(s) GENERIC-NODBG built in 2059 seconds, ncpu: 4, make -j3 So somewhat under 9.5 hr overall. That means somewhat over 3.5 hours faster than a -mcpu=3Dcortex-a53 based system without sdram_freq_min=3D3200 using 3 GiByte RAM but still RPi4B @ 2G Hz (uefi/ACPI boot): World built in 44034 seconds, ncpu: 4, make -j3 Kernel(s) GENERIC-NODBG built in 2895 seconds, ncpu: 4, make -j3 (Same as reported in prior messages.) But the prior -r362590 vs. the now -r363932 means there is more varying than in my previous comparisons. For example, clang 10 vs. clang 11. I'm probably going to run a -j4 build to see how it compares in this context. I've not run a default arm-freq/sdram_freq_min/dev.cpu.0.freq buildworld buildkernel in a long time and so do not have reasonable comparison figures relative to that type of context. I do not plan on such an experiment. I'll note that I run these tests with a monitor connected that sits with a static login prompt display after booting. I do not not test with X11 or other use that might significantly compete for more power. The serial port console is usually used. I have used ssh sometimes in the past. ~/src.configs/src.conf.cortexA72-clang-bootstrap.aarch64-host is still unchanged: # more ~/src.configs/src.conf.cortexA72-clang-bootstrap.aarch64-host=20 TO_TYPE=3Daarch64 # KERNCONF=3DGENERIC-NODBG TARGET=3Darm64 .if ${.MAKE.LEVEL} =3D=3D 0 TARGET_ARCH=3D${TO_TYPE} .export TARGET_ARCH .endif # #WITH_CROSS_COMPILER=3D WITH_SYSTEM_COMPILER=3D WITH_SYSTEM_LINKER=3D # WITH_LIBCPLUSPLUS=3D #WITH_LLD_BOOTSTRAP=3D WITHOUT_BINUTILS_BOOTSTRAP=3D WITH_ELFTOOLCHAIN_BOOTSTRAP=3D #Disables avoiding bootstrap: WITHOUT_LLVM_TARGET_ALL=3D WITH_LLVM_TARGET_AARCH64=3D WITH_LLVM_TARGET_ARM=3D WITHOUT_LLVM_TARGET_MIPS=3D WITHOUT_LLVM_TARGET_POWERPC=3D WITHOUT_LLVM_TARGET_RISCV=3D WITHOUT_LLVM_TARGET_X86=3D #WITH_CLANG_BOOTSTRAP=3D WITH_CLANG=3D WITH_CLANG_IS_CC=3D WITH_CLANG_FULL=3D WITH_CLANG_EXTRAS=3D WITH_LLD=3D WITH_LLD_IS_LD=3D WITHOUT_BINUTILS=3D WITH_LLDB=3D # WITH_BOOT=3D WITHOUT_LIB32=3D # # NO_WERROR=3D #WERROR=3D MALLOC_PRODUCTION=3D # # Avoid stripping but do not control host -g status as well: DEBUG_FLAGS+=3D # WITH_REPRODUCIBLE_BUILD=3D WITH_DEBUG_FILES=3D # # Use of the .clang 's here avoids # interfering with other CFLAGS # usage, such as ?=3D usage. CFLAGS.clang+=3D -mcpu=3Dcortex-a72 CXXFLAGS.clang+=3D -mcpu=3Dcortex-a72 CPPFLAGS.clang+=3D -mcpu=3Dcortex-a72 ACFLAGS.arm64cpuid.S+=3D -mcpu=3Dcortex-a72+crypto ACFLAGS.aesv8-armx.S+=3D -mcpu=3Dcortex-a72+crypto ACFLAGS.ghashv8-armx.S+=3D -mcpu=3Dcortex-a72+crypto =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)