From nobody Fri Mar 22 16:28:19 2024 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4V1SSP5NbTz5FHdQ for ; Fri, 22 Mar 2024 16:28:37 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic314-19.consmr.mail.gq1.yahoo.com (sonic314-19.consmr.mail.gq1.yahoo.com [98.137.69.82]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4V1SSM73rmz4YLF for ; Fri, 22 Mar 2024 16:28:35 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=EvjyQd4n; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.82 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711124913; bh=0pO3ii9FvQtt7SW0Kn0h9oHeYr7oejkbIfBps5H0Hfo=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=EvjyQd4nSCL89Oajprc9+NZ22AwbU5gFzTHyi4EYjwvKn/h6E8vEb1EnohR/lwyvDPpgL5OIRHj3HbqvSptkQX3Im0PTVGLIgxGqozULf1BWoehOkO/D8UUL93rUyEPfmloKQN5pHwazuUh21Fg6L2fZrzbYb4bR1l0hHtQkR+lbULfXiFxLPbzjidIs9hq5rx+6JDb8e/LerxgJJn83RuIm8S7G91NujMbWL494WYmzpb1cP/Be8caEPr9GEOllcPSjs0F1UTW4QNM2wFX6S3eC1OuuaWzrTxxpEnhzh7L6c6PWOOOaXMPI/6cjQk1nyPd3i+T2JaHUdzUQDVmhXg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711124913; bh=9FE63UjO2pPwdY7fVS0P2W/qwiiOoo5h4YaYmmdHALX=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=Pu93cPZXMdZ8lqj1RCk3hrEtVD7CWHTDj1ZpfeCxobN8Yn8+QXAgmjoIAyyWOqNHbeulQPWeAxuYRaqYzY3SMvfZlRgq8o+nYjw2ecLCH3e54z/wLyz75YQktvC3EKGbi7HiHh/hZv2a8nzGatWyKET4jaFN2N2MhPYb+a1a7zA85nQa7b9j8ZZwwx6R7YftU7ZJjLJEoKhAF/GV0k5UrDX1fqXc7Q/gyUYcEoyBHWSNpgbz1xGNAU1enOnEwOa1EV6a0MmAMAM4VBDi24+cSioHqBPVRDC/nU5A7BwNcFZ/GvtrDUdArsDFddfhG9TGqEEousOVUL6utRd2M+lAsA== X-YMail-OSG: 8WQO0ogVM1mk.3a6N5jFKAqY_Dqxu81ioeN0RGpx3g.NEmUao5i7IXNn1mq0WJQ ftFa8G5L.I9g1ZwJsI.7QXYiNkbYc7ypoB9qU0pIHWD_nhHxIGW48eIfrVOMUfLdpkzrDu12Bb10 _mOtyxqT5sFXPDY63m3WkTt.Jc3yfyax7kaVUuZ0QNqWDnn1hPEZxOfLUiqYB2Pv8a.O5WBkDm5q ycdp.cFk_5flr1z.QV.aX0BfTTZ2osWbsw43jPQ6xiZWLHRgRoKtRkIKlTlhBOmY92i.ZCF4zecJ qa22A6d3rO.llXyvOD_mVXnNJqAiIAbhd2AE_7.yFSO1vvcmr4xx5geBLDuCWRuMohf1rn3yaPMJ X8maLahzdMXmcy61jrcqPN7J9le_IXM22YgswKxFeU4L3.R26Pd5gmAma9DWc7up_gDX5m1gQTn8 FSCIzH56ch9fJvcqt8bfZ.Fgx219JNiwjkbt1fELsZ8Rim62YP_38BQ6Y7CsCCyRSMm4nQSTKj4L hVtEsBD3pNUczIFhfHQ4NKybtZAG0yCTDJc8DlGLwi.WVkoEayMXkOT4TUbWHQQLA9ydVbIAKm2Z nj7ui3iCiogs5J73_REmfmJpQV.LTelO4JfBcBEFmr92A0EU0YaH0Yzz416yNl_Qdn2drljeDxg4 AN.Hk8E4GdyHO_t2vmz9.HkpN0eSylU4lfjTJ3E_9k.297hthF4OVBv31dcYiuKEksWN8ndAk16J yZQPADL4mqssZ.UJqeY5L9TDexUpqKTbhS0P7b0bJu9CoQgZzRVJdAJ2MK1yHc76JmTTdcha7dmk YmkdxvNvI56BQ.IOvrJfq5R.3l1pfTZ167IQBlkPUXESX2uekDjzaFTMtco1iFJsrZzCz_ax8bA0 E1kr_fnYy5skykE4ftDeidh1ceQ3eNxKP5yU9E9028AKYsCV1F.wQFvou8R3jaHWkgAsHkVFiFeV clx8BcHPdCUIffvYtHjujOFyJkZA3XYqDeV0S96W5KdVXx2FXWleEMhoB0wvWk_mTNfg26BqfShG JO52coUa2lrM1fdcPAhO.DKTqxdim8m9ijVDvf09fChKF0_6rQ0lZ74LgWm4l.Lj.6Tb7xHiaFlU mMJqfgnz_8bhfgsk_2zxSJFL5ceEZkSKXxpjFmCPxsD1NTrqDkNl3uLD.ztn5pfKyPxbuWHjfYH4 x.SxK5zj9cJNt3522tRobw1_r6ymzRZzSQvNShZnTEJLcvfo9n.By_zxcpzu8CqsMVFBgZQu6ye_ xSPxdJK9IShNSTXolEUItpTwZaMQOMSrFnCnYozVadkvBaXnxzRJ7HC0yX31hhAa.4YZIoWpQ_jM OucfDAGw44vgjY7gw6tSpZ2quxm6NfUIykDkjpzigg1g.2ICShiOuR_SNBFJbmlPMFIiShnL8c4e Z4puwEQpyHRdUyDYlfvxKAszNwBAst2YtPh4ZIn5s.5S707cnDA06puLyWaInA2Q7fcDxJLFTwUP E5QPQIhM4rcZrYkkm_UvSUVN9guhQgZCKorH_bM9jcapzHr9RUy.bfpjMxIeufWK56z6iAVPdXJF kQftPozp92mX2vXAFN8yIOFmDd5.LO6IagdHXagcTj86Nv5x_gXV6HFBKlEKO0SfdZbO2AxD5T_B bYQFsdg5L8O879ydc4sw681KLnOdu6VFF7dLloEP7ShfQ3TOHn.aUQr12CFMOxBbTkudy39UrmIl 2Cve4B4SnP28cDWj2OynF_hell9Atazqr3qYEBIr8ZiB5ktEnxlPUI.BOTmBQkXd11gPlJd85vLx r4k9RX8rspEDCM6fei4WDxL_RlIR93xdD3xGTcLAEio_nkrEDFP8JPNLS30cWZ5U6Gi9l05DfHUt bFLRbAUWBUB4ta_UKZHb8ly.ry8dVeKF73E5Rntp98MfgTd_1FqqnN_CR9qz6GTzjXzzH2VRvmCv Zxn8DH7n73t6EYJQVoXDCH0ered0tRunFc4PU8Rj5kmKqBC6fYR9hfDm80i_lEpl_lm_fNI0amZQ 1dEB8jCsuozgK8x8.msMp.o0jfYEoASjay4piCqYKXAEQ67o8kaO2I5sXeK1Ilf9G9gYdCiQEeAM rnnlKE4kaGCJ0mD0gh2kS36OQC6NlSygWoVAiHkAVNU9pXCuAbyRpiH8zyd1EKySnBkSht_JEia7 AOEC5.4o0iFDMd.XZKwzE7lOtJWbrmU6FLkhvPnSsGwbuV1.iFX_Xovj3sY4B8IgqBLFgaxXPNFt O6H66Wvh7tyXSBo1XyOtbUfIKMIybzAPQV.9uEleRVPXb0Qi1Vyik2_joa3Wk3rYivM.f0bMpOEC H6QUJpw-- X-Sonic-MF: X-Sonic-ID: a92de3cc-29c2-480c-8d95-1ceab3a4c6b7 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Fri, 22 Mar 2024 16:28:33 +0000 Received: by hermes--production-gq1-5c57879fdf-bmngc (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 9397738726791bb8dbe334179f88e686; Fri, 22 Mar 2024 16:28:30 +0000 (UTC) Content-Type: text/plain; charset=us-ascii List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.400.31\)) Subject: Re: 4-core arm armv7-package-building configuration notes, on [RPi5 &] RPi4B (aarch64) and OrangePi+2ed (armv7), poudriere-devel based From: Mark Millard In-Reply-To: <8B5EC99A-9053-4E8D-97F3-2D9C3667B7A1@yahoo.com> Date: Fri, 22 Mar 2024 09:28:19 -0700 Cc: Nuno Teixeira Content-Transfer-Encoding: quoted-printable Message-Id: <8101B735-E56E-4A12-B099-30909DD80E87@yahoo.com> References: <9D19D8E3-5B72-4006-9296-C7D74E670A12@yahoo.com> <8B5EC99A-9053-4E8D-97F3-2D9C3667B7A1@yahoo.com> To: FreeBSD Mailing List , FreeBSD ARM List X-Mailer: Apple Mail (2.3774.400.31) X-Spamd-Bar: --- X-Spamd-Result: default: False [-4.00 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MIME_GOOD(-0.10)[text/plain]; DKIM_TRACE(0.00)[yahoo.com:+]; TO_DN_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_FROM(0.00)[yahoo.com]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_THREE(0.00)[3]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.82:from]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.82:from] X-Rspamd-Queue-Id: 4V1SSM73rmz4YLF [Adding another type of RPi5 testing for comparison/contrast: some use of USE_TMPFS=3Dall. Added at the end, after the quoting of the prior report.] On Mar 15, 2024, at 15:32, Mark Millard wrote: > [Update to add RPi5 example. The RPi5 is cortex-a76 based > instead of being cortex-a72 based (RPi4B).] >=20 > On Mar 12, 2024, at 23:57, Mark Millard wrote: >=20 >> This note's structure: >>=20 >> 1st: Package-build time frame summaries. >> (But I note some hardware points that are repeated later as well.) >>=20 >> 2nd: Configuration points common to both RPi4B and OrangePi+2ed = contexts. >=20 > New: > 3rd.RPi5: Configuration points unique to the RPi5B context. >=20 >> 3rd: Configuration points unique to the RPi4B context. >=20 > Rename the above: > 3rd.RPi4B: Configuration points unique to the RPi4B context. >=20 >> 4th: Configuration points unique to the OrangePi+2ed context. >>=20 >>=20 >> 1st: Package-build time Summaries follow. >> (Note: the detail order of package builds is not the same.) >> (Examples are visiable in these summaries.) >=20 > Shortest summary: > RPi5: 12:30:37 for the 265 armv7 packages to build from = scratch > RPi4B: 1D:07:58:46 for the 265 armv7 packages to build from = scratch > OrangePi+2ed: 5D:10:31:55 for the 265 armv7 packages to build from = scratch >=20 > Showing packages that took over 1hr to build on the > OrangePi+2ed . . . >=20 > RPi5: cortex-a76 (aarch64) with cortex-a7 (armv7) support, 2.4 GHz, = 8GiBytes RAM, USB3: > (personal -mcpu=3Dcortex-c76 boot-kernel but a PkgBase aarch64 = boot-world) > PARALLEL_JOBS=3D2 MAKE_JOBS_NUMBER_LIMIT=3D3 > [00:11:50] [01] [00:05:45] Finished lang/perl5.36 | perl5-5.36.3_1: = Success > [00:59:31] [02] [00:16:58] Finished devel/icu | icu-74.2,1: Success > [01:32:28] [02] [00:07:43] Finished lang/ruby31 | ruby-3.1.4_1,1: = Success > [01:37:06] [01] [00:56:07] Finished devel/cmake-core | = cmake-core-3.28.3: Success > [09:19:35] [02] [07:22:23] Finished lang/rust | rust-1.76.0: Success > [09:56:15] [02] [00:24:45] Finished devel/binutils@native | = binutils-2.40_5,1: Success > (Note: start of visible ordering differences:) > [10:10:53] [01] [08:33:44] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success > [10:45:38] [01] [00:34:32] Finished devel/boost-libs | = boost-libs-1.84.0: Success > [10:53:11] [01] [00:07:30] Finished textproc/source-highlight | = source-highlight-3.1.9_9: Success > [11:04:11] [02] [00:19:46] Finished devel/arm-none-eabi-gcc | = arm-none-eabi-gcc-11.3.0_3: Success > [11:32:41] [02] [00:19:34] Finished devel/aarch64-none-elf-gcc | = aarch64-none-elf-gcc-11.3.0_3: Success > [11:34:25] [01] [00:39:38] Finished lang/gcc13 | gcc13-13.2.0_4: = Success > [12:10:42] [01] [00:28:22] Finished devel/gdb@py39 | gdb-14.1_2: = Success > [12:30:33] [02] [00:29:14] Finished devel/freebsd-gcc13@armv7 | = armv7-gcc13-13.2.0_1: Success > [12:30:37] Stopping 2 builders > [main-CA7-default] [2024-03-15_02h05m19s] [committing] Queued: 265 = Built: 265 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: 0 = Time: 12:30:37 > . . . >=20 >> RPi4B: cortex-a72 (aarch64) with cortex-a7 (armv7) support, 2 GHz = (overclocked), 8 GiBytes RAM, USB3 >> [00:25:32] [01] [00:13:33] Finished lang/perl5.36 | perl5-5.36.3_1: = Success >> [01:58:13] [02] [00:44:25] Finished devel/icu | icu-74.2,1: Success >> [03:14:00] [02] [00:21:28] Finished lang/ruby31 | ruby-3.1.4_1,1: = Success >> [03:33:51] [01] [02:21:22] Finished devel/cmake-core | = cmake-core-3.28.3: Success >> [23:12:47] [02] [19:06:01] Finished lang/rust | rust-1.76.0: Success >> [1D:00:14:46] [02] [00:55:46] Finished devel/binutils@native | = binutils-2.40_5,1: Success >> (Note: start of visible ordering differences:) >> [1D:03:07:32] [02] [00:58:03] Finished devel/arm-none-eabi-gcc | = arm-none-eabi-gcc-11.3.0_3: Success >> [1D:03:42:09] [01] [1D:00:08:13] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success >> [1D:04:45:14] [02] [01:35:29] Finished lang/gcc13 | gcc13-13.2.0_4: = Success >> [1D:05:21:43] [01] [01:39:13] Finished devel/boost-libs | = boost-libs-1.84.0: Success >> [1D:05:43:24] [01] [00:21:33] Finished textproc/source-highlight | = source-highlight-3.1.9_9: Success >> [1D:05:47:01] [02] [00:44:22] Finished devel/aarch64-none-elf-gcc | = aarch64-none-elf-gcc-11.3.0_3: Success >> [1D:07:23:25] [02] [01:21:04] Finished devel/gdb@py39 | gdb-14.1_2: = Success >> [1D:07:58:37] [01] [01:19:55] Finished devel/freebsd-gcc13@armv7 | = armv7-gcc13-13.2.0_1: Success >> [1D:07:58:43] Stopping 2 builders >> [main-CA7-default] [2024-03-11_15h30m14s] [committing] Queued: 265 = Built: 265 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: 0 = Time: 1D:07:58:46 >>=20 >> . . . >=20 > [Notes about RAM+SWAP use removed, given the lack of memory > pressure in the 8 GiByte context examples. I may run a > 4 GiByte RPi4B example and replace the 8 GiByte example > with the 4 GiByte that would have some memory pressure.] >=20 >> OrangePi+2ed: cortex-a7 armv7, 1GHz, 4 cores, 2 GiBytes RAM, USB2: >> [01:51:31] [01] [01:00:07] Finished lang/perl5.36 | perl5-5.36.3_1: = Success >> [08:55:35] [02] [03:08:09] Finished devel/icu | icu-74.2,1: Success >> [13:17:38] [02] [01:28:32] Finished lang/ruby31 | ruby-3.1.4_1,1: = Success >> [14:17:44] [01] [09:20:55] Finished devel/cmake-core | = cmake-core-3.28.3: Success >> [4D:01:03:43] [02] [3D:08:48:53] Finished lang/rust | rust-1.76.0: = Success >> [4D:06:26:24] [02] [03:09:35] Finished devel/binutils@native | = binutils-2.40_5,1: Success >> (Note: start of visible ordering differences:) >> [4D:14:54:31] [02] [03:38:55] Finished devel/aarch64-none-elf-gcc | = aarch64-none-elf-gcc-11.3.0_3: Success >> [4D:16:13:00] [01] [4D:01:55:03] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success >> [4D:18:05:58] [02] [03:11:00] Finished devel/arm-none-eabi-gcc | = arm-none-eabi-gcc-11.3.0_3: Success >> [4D:23:00:13] [01] [06:46:06] Finished devel/boost-libs | = boost-libs-1.84.0: Success >> [5D:00:16:39] [01] [01:15:53] Finished textproc/source-highlight | = source-highlight-3.1.9_9: Success >> [5D:01:17:24] [02] [07:10:52] Finished lang/gcc13 | gcc13-13.2.0_4: = Success >> [5D:09:38:14] [01] [05:56:48] Finished devel/freebsd-gcc13@armv7 | = armv7-gcc13-13.2.0_1: Success >> [5D:10:18:58] [02] [05:44:02] Finished devel/gdb@py39 | gdb-14.1_2: = Success >> [5D:10:31:56] Stopping 2 builders >> [main-CA7-default] [2024-03-06_03h15m10s] [committing] Queued: 265 = Built: 265 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: 0 = Time: 5D:10:31:55 >>=20 >> (So, a little over 4 days longer than the RPi4B example above.) >>=20 >> Note: 2794Mi MaxObs(Act+Wir+Lndry+SwapUsed) ("MaxObs": short for = "Maximum Observed") >>=20 >>=20 >> 2nd: Configuration points common to both the RPi4B and the >> OrangePi+2ed contexts. >=20 > And common to the RPi5 context as well. >=20 >> ports-mgmt/poudriere-devel is used to build the packages. >>=20 >> devel/llvm18 options: using BE_NATIVE and omitting MLIR. >> (What I normally build for armv7 and aarch64 targetting.) >>=20 >> Also, ports-mgmt/poudriere-devel omits the QEMU option, >> as is normal for me. >>=20 >> 265 packages are built, including pkg. It is the same >> 265 pacakges across contexts. (The order of the builds >> does vary.) >>=20 >> /usr/local/etc/poudriere.conf has . . . >>=20 >> NO_ZFS=3Dyes >> PARALLEL_JOBS=3D2 >> ALLOW_MAKE_JOBS=3Dyes >> MAX_EXECUTION_TIME=3D432000 >> NOHANG_TIME=3D432000 >> MAX_EXECUTION_TIME_EXTRACT=3D14400 >> MAX_EXECUTION_TIME_INSTALL=3D14400 >> MAX_EXECUTION_TIME_PACKAGE=3D57600 >> MAX_EXECUTION_TIME_DEINSTALL=3D14400 >>=20 >> NOTE: MAKE_JOBS_NUMBER_LIMIT is used to constrain >> what ALLOW_MAKE_JOBS does but is not set the >> same across the contexts. >=20 > Only the native armv7 (OrangePi+2ed) context is > not using MAKE_JOBS_NUMBER_LIMIT=3D3 . It uses 2 > instead. >=20 >> /etc/fstab does not specify any tmpfs use or the >> like: avoids competing for RAM+SWAP. >>=20 >> poudriere armv7 jail worlds are duplicates of each >> other across the different media. Those worlds are >> from a personal buildworld based on using >> -mcpu=3Dcortex-a7 for the code generation. The package >> builds also use that. >>=20 >> /boot/loader.conf has . . . >>=20 >> # Delay when persistent low free RAM leads to >> # Out Of Memory killing of processes: >> vm.pageout_oom_seq=3D120 >>=20 >> Heatsinks and fans for keeping things cool over the >> sustained build activity. >=20 >=20 > 3rd.RPi5: Configuration points unique to the RPi5 context. >=20 > For the RPi5, I list what is different than the below RPi4B > context. >=20 > The power supply is the official one recommended for the > RPi5. The "Raspberry Pi Active Cooler" is specifically what > is in use as the fan/heatsink. >=20 > EDK2 from https://github.com/worproject/rpi5-uefi is in use > to boot the RPi5 via UEFI/ACPI, the material from after the > old v0.2 release. EDK2 is on a microsd card, separate from > the USB3 boot media. No use of U-Boot. (Ethernet is via a > USB3 dongle.) >=20 > The config.txt is from the EDK2 materials, no overclocking > but EDK2 does have force_turbo=3D1 . (Possibly some extra RPi* > firmware debug output is enabled or such.) >=20 > The USB3 media is the same as used for the RPi4B but I > edited my /boot/loader.conf to indicate to boot my personal > kernel.CA76-NODBG that is based on -mcpu=3Dcortex-a76 and use > of LSE_ATOMICS . (And has my usual personal-build patching.): >=20 > # uname -apKU > FreeBSD aarch64-main-pkgs 15.0-CURRENT FreeBSD 15.0-CURRENT #0 = main-n268520-5e248c23d995-dirty: Sun Mar 3 02:32:48 UTC 2024 = root@aarch64-main-pkgs:/usr/obj/BUILDs/main-CA76-nodbg-clang/usr/main-src/= arm64.aarch64/sys/GENERIC-NODBG-CA76 arm64 aarch64 1500014 1500014 >=20 > (The boot world used is the same PkgBase world that was used > on the RPi4B.) >=20 >=20 >> . . . > 3rd.RPi4B: Configuration points unique to the RPi4B context. >=20 >> /usr/local/etc/poudriere.conf has . . . >>=20 >> USE_TMPFS=3D"data" >>=20 >> (Based on the larger RAM and RAM+SWAP and that it >> does not grow to be huge for the likes of lang/rust .) >>=20 >> /usr/local/etc/poudriere.d/make.conf has . . . >>=20 >> MAKE_JOBS_NUMBER_LIMIT=3D3 >>=20 >> (Based on the larger RAM and RAM+SWAP.) This does mean >> that the 3 load averages can be 6+ at times on the 4 >> hardware thread system while both ports being built are >> respecting the limit. Some ports do not fully respect >> the limit the whole time. This can make build-times >> a somewhat messier comparison than one might hope across >> the contexts. But for the specifics here, things should >> be clear enough. >>=20 >> RAM =3D=3D 8 GiBytes >> RAM+SWAP =3D=3D 38 GiBytes >> (Note aarch64 allows a larger RAM multiplier limit without >> warning of potential swap-related mistuning: "total >> configured swap (? pages) exceeds maximum recommended >> amount (? pages)" with "increase kern.maxswzone or reduce >> amount of swap".) >>=20 >> 5.1V 3.5A power supply, so a little extra margin for current. >>=20 >> /boot/efi/config.txt has: >=20 > Definitely RPi4B specific: >=20 >> over_voltage=3D6 >> arm_freq=3D2000 >> sdram_freq_min=3D3200 >> force_turbo=3D1 >> (Reliable operation, with margin, on the mix of v1.1, v1.4, and v1.5 >> RPi4B's that I have access to, 8 total.) >>=20 >> So: 2 GHz overclocking, using a fixed rate. >>=20 >> USB3 media: U2 Optane 960 GB media via a powered USB3 adaptor. >=20 > That media is also used with the RPi5. >=20 >> Kernel has: "arm64: improve UVA layout for 32bit processes" >> ( main's 967022aa5aa6 ). So an armv7 process can be somewhat >> over 3 GiBytes for its address space. >>=20 >> Boot aarch64 env: a PkgBase world and kernel.GENERIC-NODEBUG pair. >=20 > The kernel choice was only used on the RPi4B, the world applies to > the RPi5 as well. >=20 >> FYI: >>=20 >> # uname -apKU >> FreeBSD aarch64-main-pkgs 15.0-CURRENT FreeBSD 15.0-CURRENT = main-n268514-61b88a230bac GENERIC-NODEBUG arm64 aarch64 1500014 1500014 >>=20 >>=20 >> 4th: Configuration points unique to the OrangePi+2ed context. >>=20 >> /usr/local/etc/poudriere.conf has . . . >>=20 >> USE_TMPFS=3Dno >>=20 >> (Based on the smaller RAM --and smaller RAM+SWAP for avoiding >> potential-mistuning notices.) >>=20 >> /usr/local/etc/poudriere.d/make.conf has . . . >>=20 >> MAKE_JOBS_NUMBER_LIMIT=3D2 >>=20 >> (Based on the smaller RAM --and smaller RAM+SWAP for avoiding >> potential-mistuning notices-- but wanting to still have margin >> for bigger peak RAM+SWAP use than the example happens to do.) >>=20 >> RAM =3D=3D 2 GiBytes >> RAM+SWAP =3D=3D 5.6 GiBytes >> (Note armv7 has a smaller RAM multiplier limit without >> warning of potential swap-related mistuning: "total >> configured swap (? pages) exceeds maximum recommended >> amount (? pages)" with "increase kern.maxswzone or reduce >> amount of swap".) >>=20 >> In /etc/rc.conf I have: >>=20 >> if [ "`sysctl -i -n hw.fdt.model`" =3D=3D "Xunlong Orange Pi Plus 2E" = ]; then >> sysctl dev.cpu.0.freq=3D1008 > /dev/null >> fi >>=20 >> In other words: a fixed 1GHz or so clock rate is used. >>=20 >> USB2 media: Actually USB3 media that also supports USB2 >> use. 1 TB Samsung Touch T7 (NVMe based) via a powered hub, >> a USB3-capable one. >>=20 >>=20 >>=20 >> Side note: >>=20 >> I've no clue how to judge any tradeoff consequences for >> "increase kern.maxswzone" for judging reasonableness of >> such an action. >=20 >=20 I'm adding 8 GiByte RPi5 tests of involving use of the combination: USE_TMPFS=3Dall TMPFS_BLACKLIST=3D"rust" TMPFS_BLACKLIST_TMPDIR=3D${BASEFS}/data/cache/tmp Turns out that rust then uses 2.63 GiBytes of tmpfs space, instead of using 28 GiBytes or so in my context without the TMPFS_BLACKLIST involvement. (The last increment is during packaging but the vast majority is from building.) RPi5 configuration reminder: RAM =3D=3D 8 GiBytes && RAM+SWAP =3D=3D 38 BiBytes This is based on knowing that for what I build, rust is the only package build that uses more than about 8 GiBytes of RAM+SWAP for just tmpfs space. This was learned via monitoring poudriere bulk build status on systems that could handle the USE_TMPFS=3Dall without the TMPFS_BLACKLIST use. It is also based on wanting to leave margin sufficient that the observed peak RAM+SWAP use overall (not just tmpfs) could more than double without running out. It is also prompted by the RPi5 having more normal amounts of RAM caching that is far more effective than what the RPi4B has. The PARALLEL_JOBS=3D2 use limits the number of large builds that can potentially be going on in parallel. Combination PARALLEL_JOBS=3D2 MAKE_JOBS_NUMBER_LIMIT=3D3 : [11:57:41] Stopping 2 builders [main-CA7-default] [2024-03-21_20h19m59s] [committing] Queued: 265 = Built: 265 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: 0 = Time: 11:57:47 The observed maximum Act+Wir+Lndry+SwapUsed was reported as: 14360Mi At such a time, Act+Wir+Lndry+SwapUsed+InAct was reported as: 14377Mi Note: In a 4 hardware thread context, when both builders are busy, if one is single threaded for a time, the other will usually lead to all 4 hardware threads being kept busy making useful progress but when the single thread activity happens to be package-static, say, it is not slowed down by a load average significantly over 4 (not much backlog). Combination PARALLEL_JOBS=3D2 MAKE_JOBS_NUMBER_LIMIT=3D4 : [11:58:25] Stopping 2 builders [main-CA7-default] [2024-03-20_16h52m32s] [committing] Queued: 265 = Built: 265 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: 0 = Time: 11:58:27 The observed maximum Act+Wir+Lndry+SwapUsed was reported as: 14766Mi At such a time, Act+Wir+Lndry+SwapUsed+InAct was reported as: 14767Mi Reminder that the prior 8 GiByte RPi5 combination test: USE_TMPFS=3Ddata PARALLEL_JOBS=3D2 MAKE_JOBS_NUMBER_LIMIT=3D3 got: [12:30:37] Stopping 2 builders [main-CA7-default] [2024-03-15_02h05m19s] [committing] Queued: 265 = Built: 265 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: 0 = Time: 12:30:37 So the USE_TMPFS=3Dall (other than rust tmpfs use) multiplied the time by about 0.96 . =3D=3D=3D Mark Millard marklmi at yahoo.com