Re: Trying initial boot of FreeBSD (main so: 15) of Ryzen 9 7950X3D on an ASUS Prime X670-P WIFI: various dmesg -a lines; more

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 09 Nov 2023 03:19:15 UTC
[Just supplying a missing leading digit in a numeral.]

On Nov 4, 2023, at 05:53, Mark Millard <marklmi@yahoo.com> wrote:

> On Nov 2, 2023, at 19:26, Mark Millard <marklmi@yahoo.com> wrote:
> 
>> On Nov 2, 2023, at 18:00, Mark Millard <marklmi@yahoo.com> wrote:
>> 
>>> On Nov 1, 2023, at 17:32, Mark Millard <marklmi@yahoo.com> wrote:
>>> 
>>>> On Nov 1, 2023, at 06:02, Mark Millard <marklmi@yahoo.com> wrote:
>>>> 
>>>>> On Nov 1, 2023, at 05:43, Mark Millard <marklmi@yahoo.com> wrote:
>>>>> 
>>>>>> On Nov 1, 2023, at 05:39, Mark Millard <marklmi@yahoo.com> wrote:
>>>>>> 
>>>>>>> On Oct 31, 2023, at 23:00, Mark Millard <marklmi@yahoo.com> wrote:
>>>>>>> 
>>>>>>>> FreeBSD context:
>>>>>>>> 
>>>>>>>> # uname -apKU
>>>>>>>> FreeBSD amd64-ZFS 15.0-CURRENT FreeBSD 15.0-CURRENT #126 main-n266130-d521abdff236-dirty: Tue Oct 24 18:17:40 PDT 2023     root@amd64-ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG amd64 amd64 1500002 1500002
>>>>>>>> 
>>>>>>>> I moved my FreeBDSS boot media from a ThreadRipper 1950X to a Ryzen 9 7950X3D and tried
>>>>>>>> booting. It booted but some of the following might be of some note. Is any of it likely
>>>>>>>> to be problematical? Any of it of particular interest to anyone?
>>>>>>>> 
>>>>>>>> . . .
>>>>>>>> Firmware Error (ACPI): Could not resolve symbol [\134_SB.PCI0.GPP7.UP00.DP40.UP00.DP68], AE_NOT_FOUND (20221020/dswload2-315)
>>>>>>>> ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20221020/psobject-372)
>>>>>>>> . . .
>>>>>>>> pci0: <base peripheral, IOMMU> at device 0.2 (no driver attached)
>>>>>>>> . . .
>>>>>>>> pci8: <network, ethernet> at device 0.0 (no driver attached)
>>>>>>>> . . .
>>>>>>>> pci9: <network> at device 0.0 (no driver attached)
>>>>>>>> . . .
>>>>>>>> pci15: <encrypt/decrypt> at device 0.2 (no driver attached)
>>>>>>>> . . .
>>>>>>>> ns8250: UART FCR is broken
>>>>>>>> ns8250: UART FCR is broken
>>>>>>>> . . .
>>>>>>>> intsmb0: <AMD FCH SMBus Controller> at device 20.0 on pci0
>>>>>>>> intsmb0: Could not allocate I/O space
>>>>>>>> device_attach: intsmb0 attach returned 6
>>>>>>>> intsmb0: <AMD FCH SMBus Controller> port 0xff00-0xff0f at device 20.0 on pci0
>>>>>>>> intsmb0: Could not allocate I/O space
>>>>>>>> device_attach: intsmb0 attach returned 6
>>>>>>>> . . .
>>>>>>>> intsmb0: <AMD FCH SMBus Controller> at device 20.0 on pci0
>>>>>>>> intsmb0: Could not allocate I/O space
>>>>>>>> device_attach: intsmb0 attach returned 6
>>>>>>>> intsmb0: <AMD FCH SMBus Controller> port 0xff00-0xff0f at device 20.0 on pci0
>>>>>>>> intsmb0: Could not allocate I/O space
>>>>>>>> device_attach: intsmb0 attach returned 6
>>>>>>>> acpi_wmi0: <ACPI-WMI mapping> on acpi0
>>>>>>>> acpi_wmi0: cannot find EC device
>>>>>>>> acpi_wmi0: Embedded MOF found
>>>>>>>> ACPI: \134AWW0.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20221020/nsarguments-361)
>>>>>>>> acpi_wmi1: <ACPI-WMI mapping> on acpi0
>>>>>>>> acpi_wmi1: cannot find EC device
>>>>>>>> acpi_wmi1: Embedded MOF found
>>>>>>>> ACPI: \134ABAW.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20221020/nsarguments-361)
>>>>>>>> acpi_wmi2: <ACPI-WMI mapping> on acpi0
>>>>>>>> acpi_wmi2: cannot find EC device
>>>>>>>> acpi_wmi2: Embedded MOF found
>>>>>>>> ACPI: \134RMTW.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20221020/nsarguments-361)
>>>>>>>> acpi_wmi3: <ACPI-WMI mapping> on acpi0
>>>>>>>> acpi_wmi3: cannot find EC device
>>>>>>>> acpi_wmi3: Embedded MOF found
>>>>>>>> ACPI: \134AOD.WQBA: 1 arguments were passed to a non-method ACPI object (Buffer) (20221020/nsarguments-361)
>>>>>>>> driver bug: Unable to set devclass (class: ppc devname: (unknown))
>>>>>>>> . . .
>>>>>>>> acpi_wmi4: <ACPI-WMI mapping> on acpi0
>>>>>>>> acpi_wmi4: cannot find EC device
>>>>>>>> acpi_wmi4: Embedded MOF found
>>>>>>>> ACPI: \134_SB.ATKD.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20221020/nsarguments-361)
>>>>>>>> driver bug: Unable to set devclass (class: ppc devname: (unknown))
>>>>>>>> . . .
>>>>>>>> mixer: speaker: no such device
>>>>>>>> mixer: speaker: no such device
>>>>>>>> mixer: line: no such device
>>>>>>>> mixer: line: no such device
>>>>>>>> mixer: mic: no such device
>>>>>>>> mixer: mic: no such device
>>>>>>>> mixer: mic: no such device
>>>>>>>> mixer: mix: no such device
>>>>>>>> mixer: mix: no such device
>>>>>>>> mixer: rec: no such device
>>>>>>>> mixer: rec: no such device
>>>>>>>> mixer: igain: no such device
>>>>>>>> mixer: igain: no such device
>>>>>>>> mixer: ogain: no such device
>>>>>>>> mixer: ogain: no such device
>>>>>>>> mixer: rec: no such device
>>>>>>>> mixer: rec: no such device
>>>>>>>> mixer: igain: no such device
>>>>>>>> mixer: igain: no such device
>>>>>>>> mixer: ogain: no such device
>>>>>>>> mixer: ogain: no such device
>>>>>>>> mixer: monitor: no such device
>>>>>>>> mixer: monitor: no such device
>>>>>>>> mixer: monitor: no such device
>>>>>>>> . . .
>>>>>>>> uhid2 on uhub0
>>>>>>>> uhid2: <Corsair CORSAIR iCUE COMMANDER Core, class 0/0, rev 2.00/1.00, addr 3> on usbus1
>>>>>>>> devmatch: devinfo_init: Invalid argument
>>>>>>>> uhid3 on uhub4
>>>>>>>> uhid3: <Corsair CORSAIR M55 RGB PRO Gaming Mouse, class 0/0, rev 2.00/4.07, addr 1> on usbus0
>>>>>>>> . . . 
>>>>>>>> uhid4 on uhub4
>>>>>>>> uhid4: <Corsair CORSAIR K55 RGB PRO Gaming Keyboard, class 0/0, rev 1.10/1.02, addr 2> on usbus0
>>>>>>>> devmatch: devinfo_init: Invalid argument
>>>>>>>> uhid6 on uhub4
>>>>>>>> uhid6: <Corsair CORSAIR K55 RGB PRO Gaming Keyboard, class 0/0, rev 1.10/1.02, addr 2> on usbus0
>>>>>>>> . . .
>>>>>>>> pci0:8:0:0: no VPD ident found
>>>>>>>> . . .
>>>>>>>> 
>>>>>>>> I used a USB3 Ethernet dongle in order to have Ethernet available.
>>>>>>>> 
>>>>>>>> For reference:
>>>>>>>> 
>>>>>>>> # pciconf -lvV | less
>>>>>>>> . . .
>>>>>>>> none0@pci0:0:0:2:       class=0x080600 rev=0x00 hdr=0x00 vendor=0x1022 device=0x14d9 subvendor=0x1043 subdevice=0x8877
>>>>>>>> vendor     = 'Advanced Micro Devices, Inc. [AMD]'
>>>>>>>> class      = base peripheral
>>>>>>>> subclass   = IOMMU
>>>>>>>> . . .
>>>>>>>> none1@pci0:0:20:0:      class=0x0c0500 rev=0x71 hdr=0x00 vendor=0x1022 device=0x790b subvendor=0x1043 subdevice=0x8877
>>>>>>>> vendor     = 'Advanced Micro Devices, Inc. [AMD]'
>>>>>>>> device     = 'FCH SMBus Controller'
>>>>>>>> class      = serial bus
>>>>>>>> subclass   = SMBus
>>>>>>>> . . .
>>>>>>>> none2@pci0:8:0:0:       class=0x020000 rev=0x05 hdr=0x00 vendor=0x10ec device=0x8125 subvendor=0x1043 subdevice=0x87d7
>>>>>>>> vendor     = 'Realtek Semiconductor Co., Ltd.'
>>>>>>>> device     = 'RTL8125 2.5GbE Controller'
>>>>>>>> class      = network
>>>>>>>> subclass   = ethernet
>>>>>>>> none3@pci0:9:0:0:       class=0x028000 rev=0x00 hdr=0x00 vendor=0x10ec device=0xb852 subvendor=0x1a3b subdevice=0x5471
>>>>>>>> vendor     = 'Realtek Semiconductor Co., Ltd.'
>>>>>>>> class      = network
>>>>>>>> . . .
>>>>>>>> none4@pci0:15:0:2:      class=0x108000 rev=0x00 hdr=0x00 vendor=0x1022 device=0x1649 subvendor=0x1043 subdevice=0x8877
>>>>>>>> vendor     = 'Advanced Micro Devices, Inc. [AMD]'
>>>>>>>> device     = 'VanGogh PSP/CCP'
>>>>>>>> class      = encrypt/decrypt
>>>>>>>> . . .
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Example temperatures (while idle, ambient around 20 DegC):
>>>>>>>> 
>>>>>>>> # kldload amdtemp
>>>>>>>> # sysctl dev.amdtemp
>>>>>>>> dev.amdtemp.0.ccd1: 33.0C
>>>>>>>> dev.amdtemp.0.ccd0: 34.6C
>>>>>>>> dev.amdtemp.0.core0.sensor0: 39.6C
>>>>>>>> dev.amdtemp.0.sensor_offset: 0
>>>>>>>> dev.amdtemp.0.%parent: hostb0
>>>>>>>> dev.amdtemp.0.%pnpinfo:  dev.amdtemp.0.%location:  dev.amdtemp.0.%driver: amdtemp
>>>>>>>> dev.amdtemp.0.%desc: AMD CPU On-Die Thermal Sensors
>>>>>>>> dev.amdtemp.%parent: 
>>>>>>>> 
>>>>>>>> Example during llvm build activity during buildworld:
>>>>>>>> 
>>>>>>>> # sysctl dev.amdtemp
>>>>>>>> dev.amdtemp.0.ccd1: 60.5C
>>>>>>>> dev.amdtemp.0.ccd0: 67.2C
>>>>>>>> dev.amdtemp.0.core0.sensor0: 77.1C
>>>>>>>> . . .
>>>>>>>> 
>>>>>>>> (Of course, the cooling system in place contributes greatly.)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Example from scratch builds (of my usual style of personal builds):
>>>>>>>> 
>>>>>>>> ThreadRipper 1950X: World built in 1345 seconds, ncpu: 32, make -j32
>>>>>>>> Ryzen 9 7950X3D:    World built in 545 seconds, ncpu: 32, make -j32
>>>>>>>> 
>>>>>>>> ThreadRipper 1950X: Kernel(s)  GENERIC-NODBG built in 123 seconds, ncpu: 32, make -j32
>>>>>>>> Ryzen 9 7950X3D:    Kernel(s)  GENERIC-NODBG built in 51 seconds, ncpu: 32, make -j32
>>>>>>>> 
>>>>>>>> Note: It is the same media in use: PCIe Optane moved from the 1950X
>>>>>>>> to the 7950X3D, ZFS (for bectl use, not other reasons ZFS is commonly
>>>>>>>> used for).
>>>>>>>> 
>>>>>>>> ThreadRipper 1950X: 128 GiBytes of RAM. Swap parition was 480 GiBytes at the time.
>>>>>>>> Ryzen 9 7950X3D:     96 GiBytes of RAM. Swap parition changed to 364 GiBytes.
>>>>>>>> 
>>>>>>>> (That avoids the swapon warning about possibly being out of tune vs. the amount of
>>>>>>>> RAM.)
>>>>>>> 
>>>>>>> 
>>>>>>> An ongoing poudriere bulk -a test looks to have a stuck objdump ( used for building
>>>>>>> www/node18 ):
>>>>>>> 
>>>>>>> # ps -oetime -alxdww | grep node18
>>>>>>> 05:48:03   0 44960 53404 21  68  0   18544    2892 select   I     0     0:00.03 | |       |-- sh: poudriere[main-amd64-bulk_a-default][15]: build_pkg (node18-18.18.2) (sh)
>>>>>>> 05:47:36   0 76480 44960 21  68  0   18544    2892 wait     I     0     0:00.00 | |       | `-- sh: poudriere[main-amd64-bulk_a-default][15]: build_pkg (node18-18.18.2) (sh)
>>>>>>> 05:47:36   0 76485 76480 19  68  0   12896     276 wait     IJ    0     0:00.01 | |       |   `-- /usr/bin/make -C /usr/ports/www/node18 build
>>>>>>> 05:47:36   0 77304 76485 22  68  0   13356     288 wait     IJ    0     0:00.00 | |       |     `-- /bin/sh -e -c (cd /wrkdirs/usr/ports/www/node18/work/node-v18.18.2; if ! /usr/bin/env CC.host=" cc"  CFLAGS.host="-O2 -pipe  -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing "  CXX.host=" c++"  CXXFLAGS.host="-O2 -pipe -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include "  LDFLAGS.host="  -fstack-protector-strong "  LINK.host="c++" OPENSSLBASE=/usr OPENSSLDIR=/etc/ssl OPENSSLINC=/usr/include OPENSSLLIB=/usr/lib XDG_DATA_HOME=/wrkdirs/usr/ports/www/node18/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/www/node18/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/www/node18/work/.cache  HOME=/wrkdirs/usr/ports/www/node18/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/www/node18/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/www/node18/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig DONTSTRIP=yes DONTSTRIP=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing "  CPP="cpp" CPPFLAGS="-isystem /usr/local/include"  LDFLAGS="  -fstack-protector-strong " LIBS="-L/usr/local/lib"  CXX="c++" CXXFLAGS="-O2 -pipe -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include "  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install   -m 555"  BSD_INSTALL_LIB="install   -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" gmake -f Makefile -j32  all; then  if [ -n "Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer." ] ; then  echo "===> Compilation failed unexpectedly.";  (echo "Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer.") | /usr/bin/fmt 75 79 ;  fi;  false;  fi)
>>>>>>> 05:33:34   0  7035 80309  9  26  0   22620    1312 piperd   SJ    0    32:56.31 | |       |           `-- /usr/local/bin/python3.9 tools/genv8constants.py /wrkdirs/usr/ports/www/node18/work/node-v18.18.2/out/Release/obj/gen/v8constants.h /wrkdirs/usr/ports/www/node18/work/node-v18.18.2/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a
>>>>>>> 05:33:32   0  8045  7035  9  94  0 4443576   15732 -        RJ    0    39:43.22 | |       |             `-- objdump -z -D /wrkdirs/usr/ports/www/node18/work/node-v18.18.2/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a
>>>>>>> 00:00   0 98535  2129 23  20  0   12784    1836 piperd   S+    2     0:00.00 |     `-- grep node18
>>>>>>> 
>>>>>>> For reference:
>>>>>>> 
>>>>>>> # ~/fbsd-based-on-what-commit.sh -C /usr/ports/
>>>>>>> 6ec8e3450b29 (HEAD -> main, freebsd/main, freebsd/HEAD) devel/sdts++: Mark DEPRECATED
>>>>>>> Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
>>>>>>> Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
>>>>>>> CommitDate: 2023-10-21 19:01:38 +0000
>>>>>>> branch: main
>>>>>>> merge-base: 6ec8e3450b29462a590d09fb0b07ed214d456bd5
>>>>>>> merge-base: CommitDate: 2023-10-21 19:01:38 +0000
>>>>>>> n637598 (--first-parent --count for merge-base)
>>>>>>> 
>>>>>> 
>>>>>> Looks like www/node16 has the same sort of issue as www/node18 :
>>>>>> 
>>>>>> # ps -oetime -alxdww | grep node16
>>>>>> 02:24:49   0 58471 53404 30  68  0   18544   2884 select   I     0     0:00.03 | |       |-- sh: poudriere[main-amd64-bulk_a-default][17]: build_pkg (node16-16.20.1_1) (sh)
>>>>>> 02:15:35   0  1626 58471 18  68  0   18544   2884 wait     I     0     0:00.00 | |       | `-- sh: poudriere[main-amd64-bulk_a-default][17]: build_pkg (node16-16.20.1_1) (sh)
>>>>>> 02:15:35   0  1655  1626 21  68  0   12896    276 wait     IJ    0     0:00.02 | |       |   `-- /usr/bin/make -C /usr/ports/www/node16 build
>>>>>> 02:15:34   0  2154  1655 11  68  0   13356    280 wait     IJ    0     0:00.00 | |       |     `-- /bin/sh -e -c (cd /wrkdirs/usr/ports/www/node16/work/node-v16.20.1; if ! /usr/bin/env OPENSSLBASE=/usr OPENSSLDIR=/etc/ssl OPENSSLINC=/usr/include OPENSSLLIB=/usr/lib XDG_DATA_HOME=/wrkdirs/usr/ports/www/node16/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/www/node16/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/www/node16/work/.cache  HOME=/wrkdirs/usr/ports/www/node16/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/www/node16/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/www/node16/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig DONTSTRIP=yes DONTSTRIP=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing "  CPP="cpp" CPPFLAGS="-isystem /usr/local/include"  LDFLAGS="  -fstack-protector-strong " LIBS="-L/usr/local/lib"  CXX="c++" CXXFLAGS="-O2 -pipe -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -Wno-error=enum-constexpr-conversion -isystem /usr/local/include "  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install   -m 555"  BSD_INSTALL_LIB="install   -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" gmake -f Makefile -j32 CC.host=" cc" CFLAGS.host="-O2 -pipe  -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing " CXX.host=" c++" CXXFLAGS.host="-O2 -pipe -g -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -Wno-error=enum-constexpr-conversion -isystem /usr/local/include " LINK.host=c++ LDFLAGS.host="  -fstack-protector-strong " all; then  if [ -n "Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer." ] ; then  echo "===> Compilation failed unexpectedly.";  (echo "Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintaine
>>>>>> 01:55:30   0 84603  3452 15  47  0   22620   1312 -        RJ    0    14:00.49 | |       |           `-- /usr/local/bin/python3.9 tools/genv8constants.py /wrkdirs/usr/ports/www/node16/work/node-v16.20.1/out/Release/obj/gen/v8constants.h /wrkdirs/usr/ports/www/node16/work/node-v16.20.1/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a
>>>>>> 01:55:27   0 86093 84603 15 101  0 3754296  32540 -        RJ    0    16:59.56 | |       |             `-- objdump -z -D /wrkdirs/usr/ports/www/node16/work/node-v16.20.1/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a
>>>>>> 00:00   0 84657  2129 29  20  0   12784   1812 piperd   S+    2     0:00.00 |     `-- grep node16
>>>>>> 
>>>>> 
>>>>> For reference (node16's objdump then node18's):
>>>>> 
>>>>> # truss -p 86093
>>>>> write(1,"  2ff853: 74 61                 "...,74) = 74 (0x4a)
>>>>> write(1,"  2ff855: 45 4e                 "...,50) = 50 (0x32)
>>>>> write(1,"  2ff857: 53                    "...,51) = 51 (0x33)
>>>>> write(1,"  2ff858: 30 5f 36              "...,61) = 61 (0x3d)
>>>>> write(1,"  2ff85b: 48 61                 "...,50) = 50 (0x32)
>>>>> write(1,"  2ff85d: 6e                    "...,58) = 58 (0x3a)
>>>>> write(1,"  2ff85e: 64 6c                 "...,61) = 61 (0x3d)
>>>>> write(1,"  2ff860: 65 49 4e              "...,50) = 50 (0x32)
>>>>> write(1,"  2ff863: 53                    "...,51) = 51 (0x33)
>>>>> write(1,"  2ff864: 30 5f 39              "...,61) = 61 (0x3d)
>>>>> write(1,"  2ff867: 42 79 74              "...,75) = 75 (0x4b)
>>>>> write(1,"  2ff86a: 65 41 72 72           "...,74) = 74 (0x4a)
>>>>> . . .
>>>>> 
>>>>> # truss -p 8045
>>>>> write(1,"  16f4ca: 01 00                 "...,58) = 58 (0x3a)
>>>>> write(1,"  16f4cc: 00 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4ce: 00 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4d0: ed                    "...,54) = 54 (0x36)
>>>>> write(1,"  16f4d1: ae                    "...,62) = 62 (0x3e)
>>>>> write(1,"  16f4d2: 0b 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4d4: 00 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4d6: 00 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4d8: 0a 00                 "...,56) = 56 (0x38)
>>>>> write(1,"  16f4da: 00 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4dc: 09 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4de: 00 00                 "...,57) = 57 (0x39)
>>>>> write(1,"  16f4e0: d7                    "...,46) = 46 (0x2e)
>>>>> write(1,"  16f4e1: a8 03                 "...,56) = 56 (0x38)
>>>>> . . .
>>>>> 
>>>> 
>>>> Turns out that my rare poudriere bulk -a runs are sometimes
>>>> WITH_DEBUG experiments where most things are built using
>>>> WITH_DEBUG. This was such an example.
>>>> 
>>>> I stopped the bulk -a and started a new from-scratch one
>>>> based on not using WITH_DEBUG . node18 and node16 worked
>>>> fine in this context. (The bulk -a is still running,
>>>> building other ports into packages.)
>>>> 
>>>> (I've a gradually growing list of ports that end up with
>>>> WITH_DEBUG nearly always undefined. Build failures and
>>>> resource use can both lead to such a choice.)
>>> 
>>> The non-WITH_DEBUG bulk -a now has one thing left:
>>> 
>>> ID  TOTAL                     ORIGIN   PKGNAME                PHASE PHASE    TMPFS    CPU% MEM%
>>> [23] 01:25:09 textproc/stardict-quick | stardict-quick-2.4.2_9 fetch 01:24:39 1.33 GiB   0%   0%
>>> 
>>> that looks like the fetch may time out.
>>> 
>>> The last Finish to this point was:
>>> 
>>> [33:10:00] [32] [04:37:23] Finished emulators/libretro-mame | libretro-mame-20220124_1: Success
>>> 
>>> After which:
>>> 
>>> [main-amd64-bulk_a-default] [2023-11-01_07h14m50s] [parallel_build:] Queued: 34683 Built: 33825 Failed: 179   Skipped: 358   Ignored: 320   Fetched: 0     Tobuild: 1
>>> 
>>> So a mean of somewhat over 1000 port->package builds per hour, ignoring
>>> textproc/stardict-quick .
>>> 
>>> As for the ports vintage:
>>> 
>>> # ~/fbsd-based-on-what-commit.sh -C /usr/ports/
>>> 6ec8e3450b29 (HEAD -> main, freebsd/main, freebsd/HEAD) devel/sdts++: Mark DEPRECATED
>>> Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
>>> Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
>>> CommitDate: 2023-10-21 19:01:38 +0000
>>> branch: main
>>> merge-base: 6ec8e3450b29462a590d09fb0b07ed214d456bd5
>>> merge-base: CommitDate: 2023-10-21 19:01:38 +0000
>>> n637598 (--first-parent --count for merge-base)
>>> 
>>> I do have a environment that avoids various LLVM builds taking
>>> as long to build :
>>> 
>>> llvm1[3-7]  : no MLIR, no FLANG
>>> llvm1[4-7]  : use BE_NATIVE
>>> other llvm* : use defaults (so, no avoidance)
>>> 
>>> I also prevent the builds from using strip on most of the install
>>> materials built (not just toolchain materials).
>>> 
>>> I have a munged up top that records and reports various "maximum
>>> observed" (MaxObs...) figures (or other such) based on its sampling.
>>> This explains some notation below.
>>> 
>>> ALLOW_MAKE_JOBS=yes was used. No explicit restriction on PARALLEL_JOBS
>>> or MAKE_JOBS_NUMBER (or analogous). So 32 builders allowed, each allowed
>>> 32 make jobs. This explains the high load average style of bulk -a :
>>> 
>>> load averages . . . MaxObs: 360.70, 267.63, 210.84
>>> (Those need not be all from the same time frame during the bulk -a .)
>>> 
>>> Most of the reported load averages were 96+ for all 3 durations, at least
>>> when I was looking.
>>> 
>>> The build used USE_TMPFS=all . 96 GiBytes of RAM (total across the 2 DIMMs).
>>> 372736Mi swap partition. ZFS on single partition on single drive, ZFS used
>>> just for bectl reasons, not other typical use-ZFS reasons. I've not
>>> controlled the ARC size-range explicitly.
>>> 
>>> Swap-involved MaxObs figures:
>>> 173310Mi MaxObsUsed
>>> 56332Mi MaxObs(Act+Lndry+SwapUsed)

The above line should have been:

256332Mi MaxObs(Act+Lndry+SwapUsed)

>>> 265551Mi MaxObs(Act+Wir+Lndry+SwapUsed)
>>> 
>>> So: having more than 260 GiBytes for RAM+SWAP is appropriate to the style
>>> of build at the 32 hardware-thread scale with ZFS and the amount of RAM. I
>>> had basically: 96 GiBytes RAM + 364 GiBytes swap partition == 460 GiBytes
>>> RAM+SWAP.
>>> 
>>> The media is a PCIe Optane 905P card with 1.5T of space and it has the
>>> 372736Mi swap partition, not just the file system.
>>> 
>>> Just-RAM MaxObs figures:
>>> 81066Mi MaxObsActive
>>> 21483Mi MaxObsWired
>>> 94493Mi MaxObs(Act+Wir+Lndry)
>> 
>> I should have explained the MaxObsWired figure that I reported. It is messy
>> to report usefully because of ARC use of wired that increase when the machine
>> does not have RAM use pressure restricting its size and decreases when there
>> is such memory pressure.
>> 
>> The 21483Mi figure is from a time later in the bulk -a where the pressure was
>> still in place (but monitoring had started before the ARC had grown
>> significantly after the boot).
>> 
>> Now that the bulk -a is done:
>> 
>> [main-amd64-bulk_a-default] [2023-11-01_07h14m50s] [committing:] Queued: 34683 Built: 33826 Failed: 179   Skipped: 358   Ignored: 320   Fetched: 0     Tobuild: 0      Time: 35:37:55
>> 
>> and the tail of the activity did not cause such pressure the figure is:
>> 
>> 90443Mi MaxObsWired
>> 
>> MaxObsActive did not change but 94493Mi MaxObs(Act+Wir+Lndry) was slightly
>> smaller in the 21483Mi MaxObsWired time frame: 94437Mi MaxObs(Act+Wir+Lndry) .
>> 
>> The "Swap-involved MaxObs figures" did not change.
>> 
>> Note: textproc/stardict-quick did lead to the overall mean being more like
>> 949 port->package builds per hour, spanning somewhat under 1.5 days.
>> 
>>> I looked at the error logs for the failed builds and saw no evidence of
>>> corruptions being involved. So far this system looks to be stable for
>>> use for building software and such.
>>> 
>>> I may do a similar expriment on the UFS Optane 905P 1.5T
>>> U2-in-PCIe-adapter media as well. (This configuration uses the swap
>>> partition from the ZFS Optane media.)
> 
> The experiment failed: "Too many links" under logs/bulk/latest-per-pkg/
> and then "Failed: starting". (Lots of such messages.)
> 
> In other words, UFS hits a 16 bit field limitation associated with:
> 
> /usr/include/ufs/ufs/dinode.h:#define UFS_LINK_MAX 32767
> 
> and poudriere bulk does nothing to avoid hitting the limitation,
> given that there are more buildable ports than that now.
> 
>>> Note: MaxObs(A+B+C) <= MaxObs(A)+MaxObs(B)+MaxObs(C)
> 


===
Mark Millard
marklmi at yahoo.com