From nobody Mon Mar 18 10:43:39 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 4TysBN5PlQz5DDcX for ; Mon, 18 Mar 2024 10:52:28 +0000 (UTC) (envelope-from dsl@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TysBN3QHHz4tSs; Mon, 18 Mar 2024 10:52:28 +0000 (UTC) (envelope-from dsl@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1710759148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=SN6ESUngaNIHAeHTea//s2M2HGry25HK/T3Ghk/uEDA=; b=dHD33rD6Je2NR4ledghCcXG03zrXGizGwA8aN5oklUiB2wUvV8Thfy4OVsyFrQXZgfYJJc vE2WfM1g2UB821NxbFuTmyTSH6eh9Hm+3aBqePXWunPfnwPQ6QOKjXyTgAHUDwuW/XhSVx gfSWHVCY3X37+Ntg94FGuStUoAWPDnsOoxky3Gpwv8Wptl86vzg5nPfJkmYh8rooQJALD3 JHoGffwhghetDyj+cEou6je0Be0r6/6deNWkdegzAfeN5yXYJv+yZjfdfNZbAtUKjuGnF9 Cn8K/uu2AnR4eRdpGGnmSMzM855x+hLEPoXRT3PEKY5gAIEkLZtjWOocAorL7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1710759148; a=rsa-sha256; cv=none; b=hqTwJJoBS4THvjFxEgR8qRgie1S/Y54Zs2xU1I7Cma3cupuEBETuJMvOT+qN6bD7dGdWSI OQWZGOf4Se9nDHDTe1mMdYN+c7SE4MWfzZirlmmar7GexTomcF5pNo3fQfgjTcRB4RDiy+ jTYFieuRHAmmzWebHQb1B9+MuIo2ZmQnGqycZpUmpLWqLhfRYcPKO1WahvtDkZCeiF6OLU wCED3tGZzHEivtXOSC98LsXHDaNM8wDlsSENpF0/+3rGWg1cK62fQIjofp1BgQ7If6JUaS M9p1a/m3lbNIK1dpkygSBFW0F+TLcArYeo4T3k3jQmkjp0eja8tcKMXMYoN7SA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1710759148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=SN6ESUngaNIHAeHTea//s2M2HGry25HK/T3Ghk/uEDA=; b=jGcxDDrdEDTUniXVJuyW/qCfPSrpFkLbZmq3JrORNNN/4MoZZtn7c/8fu3s3zbGsSYucjm s77pA16pGM9aATVQjYmHzK4rQn4BqwrpuWcWhiND9+gRbMoQaXLXiBLEoHz67gCDCddpk6 VqNxosKeFxmjXKg7/HBG+poaDbT1Fjy0S+LcrHfFiwqGKoTHm0mNUczjKqeHCG/D8ZuMyx hNb0hWMMUhDruZCEFKNLQ4xwcDtSP/CyHSaivp+0gI621dHoRAjVPHgxgb+9URcY4olIvU M9mfTFNezJKwx6d0HJWczouTnKJRh+Dqo0ksilZdoOQhOcACDiYbo7YPmZqSjQ== Received: from localhost (unknown [91.226.51.235]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: dsl) by smtp.freebsd.org (Postfix) with ESMTPSA id 4TysBM4v2CzF1h; Mon, 18 Mar 2024 10:52:27 +0000 (UTC) (envelope-from dsl@FreeBSD.org) References: <45965774-5534-s0o7-173n-ssq2s1330276@yvfgf.mnoonqbm.arg> <86msqx6phk.fsf@peasant.tower.home> User-agent: mu4e 1.8.13; emacs 29.2 From: Dmitry Salychev To: "Bjoern A. Zeeb" Cc: Warner Losh , freebsd-arm@freebsd.org Subject: Re: connect a "loose" device to a OFW/FDT node (and then use mii_fdt)? Date: Mon, 18 Mar 2024 11:43:39 +0100 In-reply-to: Message-ID: <86cyrrvml4.fsf@peasant.tower.home> 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 Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable "Bjoern A. Zeeb" writes: > On Sun, 17 Mar 2024, Warner Losh wrote: > >> On Sun, Mar 17, 2024 at 5:56=E2=80=AFAM Dmitry Salychev wrote: >> >>> >>> Hi, >>> >>> I'd like to suggest a real world example of the case described by bz@. >>> (please, excuse its verbosity) >>> >>> ----- dmesg ----- >>> dpaa2_mac3: dpmcp (id=3D27) at dpmac (id=3D7) on dpaa2_rc0 >>> dpaa2_mac3: max_rate=3D1000, eth_if=3DQSGMII, link_type=3DPHY >>> ... >>> paa2_mac_fdt6: on dpaa2_mc0 >>> dpaa2_mac_fdt6: node 0x49f4 'ethernet@7': reg 0x7 sfp 0 \ >>> pcs-handle 0x3f7c phy-handle 0x3984 managed 'in-band-status' \ >>> phy-conn-type 'qsgmii' >>> ... >>> dpaa2_ni0: ... on dpaa2_rc0 >>> dpaa2_ni0: connected to dpmac (id=3D7) >>> dpaa2_ni0: connected DPMAC is in PHY mode >>> dpaa2_mc0: dpmac_id 7 mdev 0xffffa0800203c800 (dpaa2_mac_fdt6) >>> pdev 0xffffa08000fc8300 (memacphy_fdt0) >>> miibus0: on memacphy_fdt0 >>> vscphy0: PHY 28 on miibus0 >>> ... >>> ----- dmesg ----- >>> ----- devinfo ----- >>> dpaa2_mac3 /* DPAA2 MAC abstraction */ >>> dpaa2_rc0 /* DPAA2 resource container, firmware bus */ >>> dpaa2_mc0 pnpinfo name=3Dfsl-mc@80c000000 compat=3Dfsl,qoriq-mc >>> simplebus0 pnpinfo name=3Dsoc compat=3Dsimple-bus >>> ofwbus0 >>> nexus0 >>> >>> dpaa2_mac_fdt6 /* compat=3Dfsl,qoriq-mc-dpmac */ >>> dpaa2_mc0 pnpinfo name=3Dfsl-mc@80c000000 compat=3Dfsl,qoriq-mc >>> simplebus0 pnpinfo name=3Dsoc compat=3Dsimple-bus >>> ofwbus0 >>> nexus0 >>> >>> vscphy0 pnpinfo oui=3D0x8083 model=3D0x27 rev=3D0x0 at phyno=3D28 >>> miibus0 >>> memacphy_fdt0 /* implements MII interface */ >>> memac_mdio_fdt0 pnpinfo name=3Dmdio@8b96000 compat=3Dfsl,fman-memac-md= io >>> simplebus0 pnpinfo name=3Dsoc compat=3Dsimple-bus >>> ofwbus0 >>> nexus0 >>> ----- devinfo ----- >>> ----- FDT ----- >>> fsl_mc: fsl-mc@80c000000 { >>> compatible =3D "fsl,qoriq-mc"; >>> ... >>> dpmacs { >>> ... >>> dpmac7: ethernet@7 { >>> compatible =3D "fsl,qoriq-mc-dpmac"; >>> reg =3D <7>; >>> phy-handle =3D <&mdio1_phy1>; >>> phy-connection-type =3D "qsgmii"; >>> pcs-handle =3D <&pcs7_0>; >>> managed =3D "in-band-status"; >>> }; >>> ... >>> }; >>> }; >>> emdio1: mdio@8b96000 { >>> compatible =3D "fsl,fman-memac-mdio"; >>> reg =3D <0x0 0x8b96000 0x0 0x1000>; >>> little-endian; >>> #address-cells =3D <1>; >>> #size-cells =3D <0>; >>> clock-frequency =3D <2500000>; >>> clocks =3D <&clockgen QORIQ_CLK_PLATFORM_PLL >>> QORIQ_CLK_PLL_DIV(1)>; >>> ... >>> mdio1_phy1: ethernet-phy@1c { >>> reg =3D <0x1c>; >>> }; >>> }; >>> ----- FDT ----- >>> >>> dpaa2_rc (resource container) acts like a firmware bus and allows to >>> discover DPAA2 devices (like dpaa2_mac) via commands implemented in the >>> MC (management complex) firmware without traversing FDT. However, >>> the firmware itself doesn't implement commands to retrieve a PHY link >>> topology[1] yet. >>> >>> FDT describes the PHY topology in this case and we're only creating >>> auxiliary drivers (like dpaa2_mac_fdt, memac_mdio_fdt and memacphy_fdt) >>> in order to gather all of the necessary pieces of information and call >>> mii_attach() somewhere in the dpaa2_ni (network interface). >>> >>> Personally, I don't think our current approach is good one because: >>> (a) it isn't clear who is responsible to extract and form a description >>> of the PHY topology and (b) auxiliary drivers provide no unified >>> interface to obtain information extracted from FDT. >>> >>> dpaa2_mc (or dpaa2_rc) could be responsible for the information >>> extraction in order to provide dpaa2_mac with everything needed to >>> create a PHY link topology in its softc[2], I think. >>> >> >> So FDT name dpmac7 (FreeBSD device dpaa2_mac3) has a pointer to the PHY >> mdio1_phy1 (FreeBSD name dpaa2_ni0). Neither looks like a detached device >> at all. Both are parts of parallel device trees, with points from one tr= ee >> to the other. The problem, though, becomes one of ordering: you'd need = to >> at least probe all the devices before you could start to attach, or you'd >> need a callback when your target device attaches. Something needs to know >> when all the parts are there to allow the mii_attach to be called. >> >> This isn't a generic 'what to do with detached devices' problem in so mu= ch >> as a 'what do we do in the embedded world where a FreeBSD logical device= is >> made up of several physical devices in the FDT tree, which effectively >> attach asynchronously' since the order of attach is implemented as in DTB >> order, but is actually undefined. If the dependencies aren't there, how= do >> you, in a generic way, register for a callback when they are (or >> alternatively, how do you create a 'set' of FDT devices (which you can k= now >> at any time) that has a way to know when all the devices are present so >> that the rest of the device's attach can happen (and you can do mii_atta= ch, >> etc). And how do you make that robust enough to inform the user when dev= ice >> sets are incomplete. It's the opposite problem of refcounting a resource= to >> free it, in many ways. >> >> Right now, there's nothing generic. It's all ad-hoc. I'd agree that this= is >> a less than ideal approach since you'd also want to be able to handle >> situations where the driver isn't there initially, but was loaded after >> mountroot (though this is likely uncommon, it's not unknown to have driv= ers >> that work when loaded from userland, but not the loader due to ordering >> bugs in the driver itself that aren't yet solved). >> >> The traditional 'we have all our dependencies in attach because all we c= are >> about is decoding (so just our parents) and everything is on the 'card' >> that we've written drivers for' isn't such a good fit here, I'll grant. = And >> unfortunately, the current answer is that cooperative devices figure it = out >> themselves, which is an unsatisfying answer. That's the basis for the >> inquiry, right? If we had a callback that waited for all components to be >> present (or other components to be present), then we could drive this vi= a a >> state machine that would have clear ordering and responsibilities (though >> the exact nature of those would be device dependent). It's quite unlikely >> that we'll ever support randomly attaching one part of the FDT to another >> because that causes other problems... IIRC, Ian and I did experiments in >> that area years ago and nothing but trouble came from it for arbitrary >> topologies (though we did get some specific ones working). > > And FYI (@dsl) I have completely rewritten parts of that code locally to > better match things but I have yet to test ACPI which I why it's nowhere > yet. > > May immediate need was actually to make mii_fdt work (as I have further > logic for PHYs to set in FDT) and for that I had to attach the miibus > to dpmac (and so I do for sfp now). Does it mean that you're attaching PCS PHY to dpaa2_mac? (see attached picture) > dpni knows little to nothing about miibus but it's device_t which is > currently needed because some ifnet callbacks are tied to the ifp which > seems unhelpful but I haen't gone down the road to start investigting the > entire tree to avoid massive code duplications. That's for another day..= .. > > Anyway, this cleans up some of the initial uncleanliness as well... but > yes, as warner said in his earlier response, we do have to proxy things > through somehow and that's what I ended up doing... > > /bz --=20 https://wiki.freebsd.org/DmitrySalychev --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=when_sfp_link_is_up.png Content-Transfer-Encoding: base64 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 jBgxQukREqG4bt26qf5xQiL6G7DcHxorWmJi4qBBg1asWCEUUJqZmZ06dUrk5RoAaiAySgD4/7i6 uurr68stun//fmxsrIL1yM1TpFKpyGdoiXB3b8XTmatXr2ZkZMgt6tOnj5GRkbpOVK9evVSvRKSD rdBRlPDz8xMqUmMUW3xLCBWpOCSltra2yFTyiqtfv77c5Tk5Oe/cE7Bp06ZC87Rs2rTp+fPnvEYp QiSjz8rKUssmnJ2dK+7WrYJ37/Tp0yMjI5csWaKuV9Hc3Fx/f/8vvviiXbt2HTp0+Prrr5lsp9Jk ZWWtXr3ayclJ5JwbGBj89NNPnKtKoK4eHiLvp6V7qFQ0X1/fjh07ivRradiw4YULFxSZmAsAahQa lgPA/8fQ0LBv375CTSZ9fHwU6ZGUlJR0+/bt0ssdHBzMzc1FHuji4qKnp5ebm/vWcsUzykobjFIt CYVIV8cy21HeunVLqKh79+5qPFJHR0d9fX25icmdO3dUqdne3l7FEbiKCQVS5Z3lqSrQ19dv3779 v//+W7ooJSXF1dU1ICBALS1uqjeR5qhCQ7iWi5aWllridZEstQrevXXq1Pn++++XLFmydevWzZs3 qzExDw0NDQ0NXbly5aBBg2bNmiXe3F5FsbGxIoPYVoSvv/5aZOjhyiSTyW7fvn3kyJHdu3eXORTG L7/80rRpU15MKkHPnj3VUo9I3leZrZULCgq++uqrtWvXigyq+9577/31119KjHULANUeGSUAvM3T 01Moo/T29lYkozx37pzc8a3K/OZpaGjYs2dPf3//0t8q7927p8jszyI/2nt6eqrxLHXs2FH1SoSa rEokEqHR5UvITYElEolUKm3durUaj1RHR8fW1lZuHKliRtmpUye17KGurq7QF/J38Qk4fPhwuRml RCKJiIhwcHBYv379hx9+yCuV2Me7Ch7drGXLliIxqOq3blW+e01NTZcuXbpo0SJ/f//9+/f//fff coceVoJMJjt16tSpU6e6dev2zTffqLc9eImcnJyLFy9W5hlTfWDcwMBA5R5YUFCQk5OTnJwcFxcX FhZ2584dBcc6+PTTT6dMmcIrSSWQSqWqzxJWrFWrVkJFz549k8lkqg9PUabY2NjRo0dfvXpVZJ0J Eyb89ttvIp9/AKBGf4jlFADAWwYPHjxz5ky5RX5+fgUFBWV+/xcKCoW6cr+1TumMUiKRnD17tsyM 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 fe+995YtW3bjxo2nT59++eWX4i0ri4qK5s2bJzJRidoVFhbu2rVLqNTT01Okq6+CXr16xZ3w7hL5 WSspKamSu/pCIywtLYWKRELDihAeHi5U1KJFC9XrV++LVVJSklCRGtuky2QyubMaSiSSYcOGcfcC gCrIKAFAjOLdvcPDw+Pj40uv1q9fP21tZQb/dXBwkPtrfGBg4FsjLglllPr6+q6urtXyupiYmAjN mPns2bPKzJtQlVlZWX377bcxMTGLFy8W6ZV///7906dPV9peBQYGJicnyy0yNDTctWuX6rPlyn0t wruidevWIgPdVnJXX2iESPx39+7dStuNrKyse/fuKbGTiouNjVXjDicmJgoV2djYqGsrCQkJQtPl tWrVirsXAFRBRgkAYvr16yc0dP1bGeWlS5fkrqZcR2+JRCKVSuXOBp6ZmXnnzh1FNt23b19DQ8Pq emlsbW3lLs/MzIyKiuLWRQkDA4M1a9YEBASI9PU7ePBgpe2P0ExcEolkzJgx5ubmqm+Cp8C7/elc S6tOnTpCpXl5eZyiak8k6nr58mV0dHTl7MaVK1eEZqHR1tbu0KGD6ptQ47HIZLK4uDi5RXXq1DEz M1PXhoS2IhFtAAsAUOhTEKcAAEQYGBj069dPbtGNGzfeHFHu8uXLcldTYsKcMh/75rZiY2OFPuJX 147exdq1aydUdP/+fW5dvKVXr17Hjx8XaqIoNJhsRRAZUlBdz9nKH2GzmsnOzr527dqmTZsmTpyo 9O9MqhBpDM5ApTVBx44dRX5irLR233/++adQUefOndVyK0ZFRalrau/nz58LVdWyZUs1nhZHR8ds Aa1bt+buBQBVkFECQBk8PT3lLs/Pz39zSEq5GWWLFi2aN2+u9KYVySivXLki9PDqnVF26dJFqOjW rVvctyjN3d199OjRcovi4+NFmsaol8hwcvb29mrZhNCcsxBSVFR07dq1zZs3T5w4sWPHjrVr1+7e vfvs2bP37Nlz7ty54ODgytyZgoKC1NRU+R/ctbRq167N9ar2dHR0evToIVR65MiRStiHjIyMY8eO CZX27dtXLVvJzc0VGtuxvER+/lFLt/Q3n4b6Arh1AUDV11hOAQCIE0n6SjpZx8bGys0dVGyAY2Fh Ibcv1ZUrV0pa2Qi132zfvn3Tpk2r8XXp3bu3UNHx48e5byHXuHHjhIpevnxZOfsgMq2TWvoJ3rlz 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 7gq//PKLyKz3UJCRkdHy5cufPXv222+/de/evSJap9arV2/atGl37969dOkS0xmhTA0aNNi2bVtU VNTChQsbNGigljp1dXWHDx/u6+sbHBw8cODAyjkQmUxW8vfYsWMfPHigdMvN5s2bnzt3bv369bVq 1eIOAYB3FBklAJSDvr6+q6ur+DpqH4yymIGBgbOzs/g6NXYwytIsLS03bdoUExOzYcMGFxeX8vb5 MjMz++STT3x9fcPDw6dOnaquDrkoL6lUOnjwYH9//9u3by9ZsqRTp07Kdd9r2bLl/Pnzg4OD79y5 M3r06CrVA7pt27ZBQUFHjx51cXFR8CHa2toDBw78448/wsLCxo0bJ3I4Ojo6v//++59//tmxY0eR k9yiRQszMzPuN3GGhobTpk0LDAyMjo7+9ddfP/jgg4YNG6pSoba2dufOnefNm+fn55eQkPDbb7/Z 29tznqG4Jk2arF27Ni4uzsfHZ8aMGcpN/2Vubu7l5bVjx474+Pjjx4+7ublV5iG8NfWNlZXVX3/9 df/+/RkzZij+ouTg4LB79+6wsDB3d3fuCgB4tz/8FxUVcRYAANVbamrq9evXg4ODHz169OTJkxcv XmRmZmZlZclkMj09PQMDA3Nz80aNGrVo0aJ9+/Zdu3a1t7dnIL+q6dWrV0FBQY8fP46KioqMjIyP jy++lFlZWbm5uTo6Ovr6+nXr1jU3N7eysmrVqlWHDh26devWuHHjd+Lo4uLizp49e+PGjfDw8OfP n6ekpOTm5urr65uYmJiYmFhaWjo4ODg6Ojo7Ows1nBTx4sWLa9euJSYmpqSk6Orq1qlTx8TExMrK qkOHDkZGRtxaSl+yu3fvFr+wxMTEJCUlJScnp6am5ubm5ufnFxYW6ujo6Onp6enp1a1bt0GDBg0a NLC2tm7Tpk2bNm3s7OwqotE9arL4+Pg7d+7cu3fv4cOHz58/j4uLS0lJycnJycvL09HRMTAwMDIy srCwaNKkSbNmzTp27Ghvb9+qVauKfr+7f/++nZ2d3KLffvtt2rRpcotkMtnNmzcvXrz44MGD8PDw ly9fZmRkZGdnGxoaGhsbN27c2NbW1tHR0cPDoxL6pAMAKgcZJQAAAACgQohklFu2bGHYXABACfp6 AwAAAAAAANAkMkoAAAAAAAAAmkRGCQAAAAAAAECTyCgBAAAAAAAAaBIZJQAAAAAAAABNIqMEAAAA AAAAoElklAAAAAAAAAA0iYwSAAAAAAAAgCaRUQIAAAAAAADQJDJKAAAAAAAAAJpERgkAAAAAAABA k8goAQAAAAAAAGgSGSUAAAAAAAAATSKjBAAAAAAAAKBJZJQAAAAAAAAANImMEgAAAAAAAIAmkVEC AAAAAAAA0CQySgAAAAAAAACaJC0qKuIsAAAAAADULjMz88aNG3KLWrdu3bhxY04RAKAYGSUAAAAA AAAATaKvNwAAAAAAAABNIqMEAAAAAAAAoElklAAAAAAAAAA0iYwSAAAAAAAAgCaRUQIAAAAAAADQ JDJKAAAAAAAAAJpERgkAAAAAAABAk8goAQAAAAAAAGgSGSUAAAAAAAAATSKjBAAAAAAAAKBJZJQA AAAAAAAANImMEgAAAAAAAIAmkVECAAAAAAAA0CQySgAAAAAAAACaREYJAAAAAAAAQJPIKAEAAAAA AABoEhklAAAAAAAAAE0iowQAAAAAAACgSWSUAAAAAAAAADSJjBIAAAAAAACAJpFRAgAAAAAAANAk MkoAAAAAAAAAmkRGCQAAAAAAAECTyCgBAAAAAAAAaBIZJQAAAAAAAABNIqMEAAAAAAAAoElklAAA AAAAAAA0iYwSAAAAAAAAgCaRUQIAAAAAAADQJDJKAAAAAAAAAJpERgkAAAAAAABAk8goAQAAAAAA AGgSGSUAAAAAAAAATSKjBAAAAAAAAKBJZJQAAAAAAAAANImMEv+PvTuPi6r6/zh+ZmDYQRARxA0V VNTEfTdT08ylrFxKy76aW2mWuaQtmtnu0qKWWZbkkpZbmor7noq4Ae7iBgiyyA4DA8zvj9P3fuc3 wAgoXpHX8w8fzJnP3BnPvTN37nvOPRcAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAA AAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQ ExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIA AAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAA ADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExkl AAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAA AABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWR UQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAA AAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQ ExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIA AAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAA ADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExkl AAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAA AABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWR UQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAA AAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQ ExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIA AAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAA ADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADWRUQIAAAAAAABQExkl AAAAAAAAADWRUQIAAAAAAABQExklAAAAAAAAADVZ0wUAAAAAHgYXLlxYsmRJfn7+6NGjGzVqVFRZ aGhoYGDgyZMnU1JSqlSp0rFjx1GjRnl7exdavGXLlnXr1l28eDE7O7tGjRo9e/YcPny4vb19wcrs 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 Snx8fKHFcXFxkyZN8vPz0+l0jo6Obdq0+fbbbwv+4pWWllbo6+zWrVv//v0nT568detWg8Fg9qj4 +PhRo0Z5eXlptVoPD4/u3bvLq8AZjcagoKBOnTr5+vp27NgxKyvLaDRmZmYuWrSoS5cu1apV0+l0 1tbWNWvWHDRo0K5duwq+7HPnzo0cObJOnTo2NjayQwYMGLB3797idL7BYBgyZEiXLl2GDRtmuqcu SL6erl27KrtmAADuLzJKACj3HB0drf5LuVaGlYlZs2YpxeHh4TIBtLe379GjR79+/eQ0kVZWVgXH Uq1atUou0NPTs1+/fj169JCngHl4eJw7d67UxUpGafX/mZ2dvWfPHtPjRjnkxMXFZdSoUe+++26f Pn2sra27det2/fp1+bzdu3f//PPPs7Ozf/vtN7k0Hx+f4cOHT5069Y033mjbtq0MCt9//31lsSkp KS1atJADcJ599tlp06aNGzdOjogUQkyfPr04/b9x40ZZ/9NPPxVV88Ybb8g+L9hveFS99NJLMo7s 3bv39OnT33zzzTZt2shN5YsvvjB7Cwshpk6damNj06pVq2nTpn344YedO3eWxVOmTDEtlnGkHLT7 7LPPygiyYEaZl5f3wgsvKJM8jBw5slevXnKwVePGjZUBwu+//76s6dix49SpU8eOHevj42NjYxMU FCQHLzs6On744Yc7d+40klECAACgLJFRAkC5J092tsDsXOYrV648++yzphcRbt26tWkgaGr37t0t W7ZUKnU63XPPPVfUGIpiFisZpRmdTufp6dm1a9e5c+cWPMn6n3/+kXNlSk5OThMnTtTr9Uajcfbs 2TKUtLKySk9PNxqNQUFBXbp0MbtucqNGjX799VezxaalpU2dOlW5xohSuXz58uJ0fmRkpByJ9swz z1goy8jIkC++efPm2dnZbLQVQV5e3vz5882ujt28eXNl5JRCZpTLli07dOiQvFqU5OLiMmvWLLOR TampqUp8KYRYsGCBsbCM0mg0GgyGL7/8slq1akqxnZ3dmDFjTN9cOTk548ePl3MgKJ8G+/fvNxqN V69elVNACCHkAE8ySgAAAJQdjfG/148DAFQoKSkpFy9ezM3NrVOnjmmKUahbt25du3bNxsamQYMG d73EcImKSzqH8qVLl27fvl2lSpU6deqYzuufk5MTHx/v7u6uzCAmhEhKSoqOjr5z546trW2dOnXM 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 0ZdOZaQkZKUlZWelW9vY2Tm6uHn5VK1Vv0oNP1YfyrXEW1fjb168E3tdn55qyM7Uaq10tvb2zq5u Xj6ePo0qeVS/Dx96hXFy9XB2/9+Vmu7EXM/OTLP8yamztbd1cHZ0ca+wuxg82u5x71CcfWJRvOo2 1mi0xX9fazQaG3snO0dnBxf3+9gD+uRbu3btYksoL1Kjw8+ccSx+fX6udyme5cHsHXJz9JEXTtyJ vZaVmpSVliSEsLFzdKpc1d27nrdvgI29Y0kXmJ4cH3s1/E7MtcyUxBx9ptFolC/SzbNWlRq+VWs1 EBoN39X/tw61Wlt7R1sHFweXyqV4lvz8vNtXzybciki+HZmTlW7I0VvrbHW29k5uHm5ePt6+Te0c K1XAd6hZ57u4V3N0rVKy93jCrYyUROWme/W6NnbFei/k6DMSo6/+bxdTp7FGe0/j2+7vsRgeYRwh lFhCVMTvnwxTbto7uY7+eoeVta74Szi26ecTO1YoNzs+/0bbfqOK88Coiyf++GKkcrPlU690efGd UvwX8nINYfvXhx/cGHfzoiji+6utg7Nvi26tn361snediraK13z+Wl5uTjGLtVqrKjX9fJp0aPL4 c65VaxRzPR7f+uvNc8F5uYaianS29r4turV7ZmRJE/By52hfwCIAACAASURBVNzhvw+t/a44lRqt tkp139qN2wV0G1jJo0Yxl5+VnhyyLfBi8I7UhFtF1bi4V2vUsW+LHkPtnCqx+lCOZGeln9y+4uyh TamJMRbK3KvXa9FjSOPOz2q1Vvf+oWeqZa9Xugz+325o36o518P/KdaXDxtbT5/Gvi2eaNK5v62D M6sSj4D7snco/j6xoDcXH9bZOpTifW3nVMnbt5l/+6f9Wj1Z1KdE8d0OD+rRYyrbQzny4dYSFDcZ +FUpnqKs9w7XQg+f2L48+tKporZ5rZV1rUZtWj71Su3G7e66NGN+/rl//j61a3XczQui6KDfsZJ7 k879W/Z65ZHPzkr6ueTgUrlavab+Hfr4Nn+iOIlzclxU8N9LL5/YbSHI1mi1NRu0atN3RK1GbSvU 29Os8+s269L/rW9KtIRNCyfF3big3Bz83i/V/ZoX54Entq84snGxcrP/W9/UbdalFP+F+34shkce GeW9ykpPjji9v36rJ4tZn5+fd/7o1tI915k9f5rePHt4U6cB40s6XOvKyb37fp9r4TPi30PfzLSz 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 C5fWVWySmZLw23//L/d+mvRjtxEvO7X+e9SFNt2GHt26Qsq5nA/72b1d99Ya9MxIiD4u9U0RQrj5 dTK1tK3evyGTabVl9NWfeTo5Ov2ffTcxJkLq03f811Dvjv1tHFv98//WC+gzWnrwLi4q2PPt+6Nn fmVgaFT1bpUlisMb/67I8a1FbZ/ErIWbVuMferhI68+EfUdLOcpbsWcKcu4LIfQNDNuGVKO5F3Pk V/VU3R36jdFwK0NjU//uw6LDtwkhbsWdLTN/d523xdDckKOsY3r6Bu16PH4u7CeVUhkfeVgIYW5t 17o6D6Dq7tZCiMC+YzTf0LfzQKm/txAiOnzbP3KUQji0atPvmVl//vSww39SzIl1c0f1Gf+WX7dh 5Wege5B26+SOby+f2CP+Kr3sNeYNzw61fYzWMzB2dtZiTZOBabZODnrIqKlXz4RJz0kXj/zm1/0x 93bdy6zTb+KsTZ+9IiV8T+38Listuc/4GVVkFm5cOHLgf5/lZ2c+fJB64tXa12bqG5trNf5CZDeQ 0zBowPhbsWfUeZxTu9YmXDzed8Lbrfy7lL87Jl85f3TLf9VdzPQNjJ54Y4mFrWNDO3yN159//rl0 6dK9e/cK1AWP9iFeQX1vXDgihMh9kP7zwuf6Pzvbr9vQyp788rPvHf/1G/Wg5mZWLToOntjEYiLT 0/fy8uKzgRo+PJhY1Hhb7g6AThgam42Y+vnmJZMV8kIhRPa9Oz9+NKHLsBc6DX2ufKKwMC8r6sCm 03u+l1YWQrQO7Nnzn98omFrY9Hhy6uFNXwghlMqS7V/OCBk5ufOw5yvrn6Eoll84tPnYlq9UKqUQ QshkPcdOq8E/4uzsrL0oGVvq5slcGrJ///pPhBAKeVHYuo+f/td3ZbqZdx3xyqVjv+c+SBdC3Lx8 etOilwc+N1eanLpCGcnXDvywSN3JzqN9iJtf59o+POgbOjvbafFTaqb1+Du4+zl6+KclxaUlxUkf Re/gfpoP46hSKaP/ej60sHHw7NBH818d0Ge0lKMUQkSH/9rvmXe02hZD83owIwR1LqDv6HNhP0mn vRCibc8n9PT0Ndy2IPfB1TMHpGVX3+BqzVGjb2DUtsfwyAMbhRBpSbHSpD2lVwgeNEHf0OjA/z5V KZVSw3Xf2o8P/rjYo32IjVMrc2t7lbIk70FGSnx0asIldXZSyGQ9npzSfeRkjmylZ5Gh0aAX521b 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 AAAoEmKUAAAAAAAAAAAAoEiIUQIAAAAAAAAAAIAiIUYJAAAAAAAAAAAAioQYJQAAAAAAAAAAACgS YpQAAAAAAAAAAACgSIhRAgAAAAAAAAAAgCIhRgkAAAAAAAAAAACKhBglAAAAAAAAAAAAKBJilAAA AAAAAAAAAKBIiFECAAAAAAAAAACAIiFGCQAAAAAAAAAAAIqEGCUAAAAAAAAAAAAoEmKUAAAAAAAA AAAAoEiIUQIAAAAAAAAAAIAiIUYJAAAAAAAAAAAAioQYJQAAAAAAAAAAACgSYpQAAAAAAAAAAACg SIhRAgAAAAAAAAAAgCIhRgkAAAAAAAAAAACKhBglAAAAAAAAAAAAKBJilAAAAAAAAAAAAKBIiFEC AAAAAAAAAACAIiFGCQAAAAAAAAAAAIqEGCUAAAAAAAAAAAAoEmKUAAAAAAAAAAAAoEiIUQIAAAAA AAAAAIAiIUYJAAAAAAAAAAAAioQYJQAAAAAAAAAAACgSYpQAAAAAAAAAAACgSIhRAgAAAAAAAAAA gCIhRgkAAAAAAAAAAACKhBglAAAAAAAAAAAAKBJilAAAAAAAAAAAAKBIiFECAAAAAAAAAACAIiFG CQAAAAAAAAAAAIqEGCUAAAAAAAAAAAAoEmKUAAAAAAAAAAAAoEiIUQIAAAAAAAAAAIAiIUYJAAAA AAAAAAAAioQYJQAAAAAAAAAAACgSYpQAAAAAAAAAAACgSIhRAgAAAAAAAAAAgCIhRgkAAAAAAAAA AACKhBglAAAAAAAAAAAAKBJilAAAAAAAAAAAAKBIiFECAAAAAAAAAACAIiFGCQAAAAAAAAAAAIqE GCUAAAAAAAAAAAAoEmKUAAAAAAAAAAAAoEiIUQIAAAAAAAAAAIAiIUYJAAAAAAAAAAAAioQYJQAA AAAAAAAAACgSYpQAAAAAAAAAAACgSIhRAgAAAAAAAAAAgCKp4BAAfBjWrFmTnp7OMIyzs/P3339P P6+oqJg3bx5ZXrx48dSpU+mqkJCQ33//nSzv27fP0tKyNXdYsd/+QQoLC9u5cydZ/uOPP7p3797Y HDhqC6CetBGopQDvKS8vr0uXLpFlb29vJSU0lQAAAID/B2KUMikvL4+Li2swGY/H09bW1tPT69Sp U9MevBISEmJiYl68eFFUVFReXq6iotKuXbsOHTpYW1sPGDCg7QRxWu2AgOwCAwPj4+PFP6+rq7tx 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 UlZVVYWHhycmJqalpZWVlVVWVqqrq+vq6nbo0MHOzs7BwUFa4OyDPCB1dXXBwcHBwcG5ubklJSVa WlodOnTo37//8OHDpb2Vie/k7du3k5KScnNzBQJBhw4dHB0dR48ezT33JVFfXx8WFvbkyZPs7OyS khJdXd2OHTs6OzsPHTpUvFklFRsbS0I8urq6HI1csrKyXr58SccCE+k9xN6He/fuRURE5ObmlpeX t2/f3sbGxt3dnT2zCltERASZuqFDhw50MEeSD5lMlmGY7t27szfPz8+Pj48nywMGDBBvwVdRUXH7 9u3IyMiCggJlZWVTU1NnZ+cxY8aIvAu9fPkyKCiosrJST0+vZ8+eAwcOZK8NCAh48uRJWVmZtrZ2 9+7dXVxcevToIcu3U9nZ2YGBgQkJCWRQeUNDwx49eowaNYqj4pWUlDx9+pR2jJUYvyCCg4Nra2vJ S5QsM1xzkNcpLBAI7t+/HxwcnJWVVV1dra+vb29vP336dNqS7unTpyRIZG5uzm6bTKuWkpISnb23 uLj4xo0bKSkpOTk5mpqaXbp0GT9+PLuGiNQ6abVFjlWC+uSTT65fv84wzKeffioymCa3kpKSe/fu xcbG5ufnV1ZW6ujodO7c2cnJaejQoRJf1ImHDx+SW574xMrvC4FAEBcXFxER8erVq4KCgurqanV1 dR0dna5du/bq1WvQoEHs2eGlKSgoiIuLo78ZSNykvLzcz88vKiqqoKBAIBAYGxsPHjx44sSJ5O2d vH7TIAhHa8SmlRS3yspK2g7OwcGBnBe1tbV+fn4xMTGkW7epqenw4cNdXV05wg1y2cm4uLg7d+7k 5uaqq6ubm5s7Ojo6OTmJBC7j4uLohBg9evQwMzOTmNWzZ8+Kiopo67wGOwTI5UZJvvfBgwcZGRlF RUUqKioGBga9e/ceNmwYxwVWvjc7aR49eiQQCBiG6d27N223KPECrqOjQ/tui3jx4gWZS9rAwKBv 377kw7CwMDJ/EftS2SiFhYXPnz+X8SmoqKgoKCgoPj4+MzOzoqJCRUVFX1/fwsLCycnJwcGBjmrS TFlZWT4+PvHx8aWlpZqaml27dh02bNigQYPEj9jz58/JQ1G/fv1Iq/z09HQ6GdqwYcPoEJ8cp16v Xr0k3tFqamr++++/sLCw3NxcFRWVTp06DRgwgAb+2Lfm5lQJfX19Oseg3Mm3vN6jZ3sAAIC2ADFK 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 /vDhQwQoAQAAAAAAyvgLF/IoAeT36dOnL1++CIXC2rVrt2rVCoW8oSpIS0uLiorKyMhQVVU1MDBo 1KiRtrY2DktZycrKevv2bXp6eo0aNRo3bmxsbIxjAgAAAAAAUOYQowQAAAAAAAAAAIDKhLHeAAAA AAAAAAAAUJkQowQAAAAAAAAAAIDKhBglAAAAAAAAAAAAVCbEKAEAAAAAAAAAAKAyIUYJAAAAAAAA AAAAlQkxSgAAAAAAAAAAAKhMiFECAAAAAAAAAABAZUKMEgAAAAAAAAAAACoTYpQAAAAAAAAAAABQ mRCjBAAAAAAAAAAAgMqEGCUAAAAAAAAAAABUJsQoAQAAAAAAAAAAoDIhRgkAAAAAAAAAAACVCTFK AAAAAAAAAAAAqEyIUQIAAAAAAAAAAEBlQowSAAAAAAAAAAAAKhNilAAAAAAAAAAAAFCZEKMEAAAA AAAAAACAyoQYJQAAAAAAAAAAAFQmxCgBAAAAAAAAAACgMiFGCQAAAAAAAAAAAJUJMUoAAAAAAAAA AACoTIhRAgAAAAAAAAAAQGVCjBIAAAAAAAAAAAAqE2KUAAAAAAAAAAAAUJkQowQAAAAAAAAAAIDK hBglAAAAAAAAAAAAVCbEKAEAAAAAAAAAAKAyIUYJAAAAAAAAAAAAlQkxSgAAAAAAAAAAAKhMiFEC AAAAAAAAAABAZUKMEgAAAAAAAAAAACoTYpQAAAAAAAAAAABQmRCjBAAAAAAAAAAAgMqEGCUAAAAA AAAAAABUJsQoAQAAAAAAAAAAoDIhRgkAAAAAAAAAAACVCTFKAAAAAAAAAAAAqEyIUQIAAAAAAAAA AEBlQowSAAAAAAAAAAAAKhNilAAAAAAAAAAAAFCZEKMEAAAAAAAAAACAyoQYJQAAAAAAAAAAAFQm xCgBAAAAAAAAAACgMiFGCQAAAAAAAAAAAJUJMUoAAAAAAAAAAACoTIhRAgAAAAAAAAAAQGVCjBIA AAAAAAAAAAAqE2KUAAAAAAAAAAAAUJkQowQAAAAAAAAAAIDKpIZDUDE+fPiQm5tLCNHT0zM3Ny/b zhMSElJSUgghqqqqlpaWONoAAAAAAAAAAPAPIhCJRDgKFcDCwiIiIoIQ4uTkFBgYWLadz5kzZ9eu XYQQLS2trKwsHO1/vYyMjLS0ND09PT09vbLqMy8vLyMjIycnp1q1alpaWjo6OjjOlUIoFP748SM3 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 /F84KScnx8HBYfHixZJtrKys2LhCOtujPD0/efJk+PDhNIfIwcHB19dXbPB4xeBGRUUi0e7du9k0 gtw2+/btY0Onz5w5I3//2traP5XFZtuUH4tRllPBHFYMpGnTpjo6Okr0oKur26xZM7osGTMyMTE5 dOgQy1VMTEz08PAwMjLq0aPHihUrQkNDs7Kyyu9icHNzowsuLi4zZ86kyXfa2tqrV69++vRpixYt FOrNzMyMllgpLCxs27btunXr6DB5U1NTHx+fixcvylkYqmwVFhYeP36cLqupqXFLXWVmZqamptLl du3aleEPBioqKmfOnGFjzPPy8rZs2dKkSRNLS0sPD48LFy58/fq1zG9c5bfFPXv2sJ5dXV1zc3MJ ITNmzKDR5+rVqx87dkyJ+lo9evRgWca7d+9mKZmKvjc1NDQsLS3xzwsAAAAAAKAMoa531cIGZUtq 3779X3/9RQjJzMzMyMgosSLzhw8fHB0d6XhGGxubgICAcoqpKcTExGTw4MFSV9WuXdvR0dHf358Q 8vfff3/79k3+aQS5ZcTLW7nGKIVCIRsmXJpZFI2MjN6/f08IKSgoyMzMFIt1jh8/vl69emPGjGET XxYVFd25c4cOZVVVVW3Tpo2NjY2Dg4OdnZ08ZYvl9OnTpwcPHnAfMTY2dnd3nzlzpnKlt2/dusWK d1OtW7eeN2/emDFjyinLVZ4z6ObmxoJZLi4u3LcqN1+1zGfJtLKyevr06bBhw8LDw9mDb968efPm DS0y3qRJExsbGzs7uwEDBtSqVasqb9HQ0HDv3r30J4To6OgVK1a0bt06JCSErl2zZg2rsKSoLVu2 BAUFpaSk0Kktnz59Kv8vN+z01axZU/4ZCQAAAAAAAEAeyKOsQjQ1Nbt37y5rLbdCRWZmJn9XiYmJ ffv2pRlb7dq1u3z5co0aNarCa3R0dOTJHevWrRtdEIlEERERVfM0lWuM8ufPnyxJtjSBV24llu/f v0s2sLe3//z586ZNm+rXry+2SigUPn/+fNeuXY6OjrVq1RozZsyzZ89K+boyMzPd3d1btmzJrf9e t27dT58+LV26VDJA+fDhQzpjqawOIyMj+/fvb2dn9+rVK/agk5PTy5cvJ0yYIBmgPHPmzJkzZ6Qe irLy7du3c+fOdevW7ciRI/SRWrVq/fHHH2LnV+o5KiumpqZPnz49d+5cu3btJNdGRUWdOHFiwoQJ derU6dmzZ0BAQHFxcZXd4qhRo4YNG0aXd+zY8dtvv9Hlzp07z507V+kdrlmz5vbt2+nyixcvdu7c qdDbs/zOHQAAAAAAwH8cYpRViJmZGU/Yi80hSAih9UZkSU9P79evX2xsLCGkZcuWISEhJSZdVhj+ AZKNGzdmy+U6lV5plGuMkpvSJRQKle6H+1xZGYVaWloLFy788uXLvXv3FixY0KFDB8nUsJycHF9f 3w4dOrArSglRUVHW1tb79u2j0w6YmZnRIdhJSUleXl5Sn3L69GkPD48mTZocPHhQcu3ly5etra2v XbtG/2zdujV7XNbo3XXr1rm4uNSpU6eUsW9jaYyMjLS0tIyMjEaPHs0qjOvp6QUEBJiYmPzPDZcz PJn/Xaz8PV1FZdSoUc+fP//w4cP69et79+6tra0t1qa4uDgsLGzYsGGtWrWSnLG06mxx//79NH4t FAppfFBTU1O5Ud5cLi4uffr0ocsrV66U/8Jm2y2ncwcAAAAAAPBfhhhlFVImc+fl5eUNHjz49evX hBB9ff0bN24YGhpWndcoFrIRw80VrZgqLkoo1xilvr4+i4Nwc+4Uxa1Xzj/GViAQdOvWbcuWLU+e PElLS7t58+bq1av79OkjVmomJCSkU6dOdPy4QpKSknr27BkZGUkIqV69+vbt2z98+MDKlSxfvlxs sDbbHF1g07AyN2/eHD58OE0lNjU1DQwMfPnypaOjIyFEKBS6urpKxnbj4uLevXtHCKldu7ZCNXkk JUvz7ds3Ok8iY2tr++zZM1tbW7GnczNGyzWpkxDSrFkzT0/P0NDQtLS0Z8+e7dq1a8SIEWIDzD98 +NC7d28/P7+quUUjIyOxPMdVq1a1bNmy9Lt64MAB+qtPdnY2myO1ROz0lfe5AwAAAAAA+A9CjLIq nQyV0p4OkUg0duxYOqsgISQtLa30SVJlSzLBioubK0pn0qyCyjVGKRAIWBwkPj5e6X6SkpLogpaW lvwTSmppadnZ2S1fvvz69evfv38PDg4eMmQIW5ucnDxixAhFszunTJmSkJBACDEwMAgNDZ07d66G hoaHhwet6pOVlSVZnfnx48d0PsfGjRuLBaQyMjJcXFwKCgoIIa1bt3706JGTkxMhZMeOHfR0hIeH 05kQuXx8fOjCwIEDy6+uva6urqWlpbu7e1hY2J07d8TKeVPceLHU4Gx5UFVVtba2/u2332gdm6dP n86aNYu914qKin799Vc2gWZV2+L48ePZNWBgYMAzY69CGjduzALlwcHB586dk+dZ7PSlpaWVa2kp AAAAAACA/yDEKP9VcnJyuPP9EUKmT5/+8ePHqrOH3CikJO5I59LPlFdOyruut4WFBV348uWLcpWR 09PT2Uj5X375Rbnd0NTU7N+/f0BAwI0bN1jJnYiICIVy7h48eHD16lW67OPjw+YbVVdXP3ToEA0X Xrp0ydfXl/usU6dO0QVWgpnZu3cvPSYGBgbXrl1jibdNmzZdsmQJXV6+fHlUVBT3WadPn5bVoaIy ZSgsLExPT3/16tWePXt4ZpWtXr26mZkZXX758iUtV12RBAJB+/bt9+7d++bNG3Zt5OTkbNmypcpu kc2lq6GhIX99mxItWLCAvdc8PDzkSVtmSbjFxcWPHj3CfxwAAAAAAIAyhBjlv5Cpqenx48dpBC0z M3PUqFF5eXlVZN/4gzLc/RQba8wjJyenhbKCgoIUfQnlHaO0sbFhy7dv31aih/v377PCO7169Srl /tjb2x84cID9eeXKFfmfy9LTOnXq1LdvX+6qnj17zpw5ky5PmzaNTRP548ePkydPEkLU1dWnTJki q0NXV1fuzACEkCVLltCJKbOzs4cOHcrS3K5du0Y7t7CwYEFSpWnLIH+V565du9KFwsLCSkxzbtSo 0eXLl9lcpQqd1n/KFvmpq6t7eXnRQHlycvLChQv/3z9F2fns7NwRQm7cuIH/NQAAAAAAAGUIMcp/ m65duz558mTixIkbN26kj/z9998eHh7lvV05h2ZnZGTwrOXOoih/nZ/i4uIPykpPT1f0lZZ3jJIb VTx8+LASPbC0QUKInZ1d6Xdp9OjR7MXGxMTI/8SXL19Kvihm8+bNdBhvVlbWkCFD6NnfsWMHvZbG jRsnFoUUCoV0olWpHaqrq3t7e9Ocuzdv3rCUyfXr19OFBQsWVIV3KHeGzf379yv69Pj4+EOHDtHq Q6VkZmbGZsyMj48vTY2mKrtFfl26dJk+fTpdPnr06N27d8n/ZnPznLtjx47l5+crtDmhULh9+3bM ZQkAAAAAACAVYpT/KtWrV7916xYtUjF37tyBAwfSx728vNiUfIpi8/fxl7KVc1Sy2CBcMdwZGM3N zavmQW7RokVhYWFhYaFySY4l6tWrV9OmTenyX3/99eTJE4WeHhsbGxgYSJebNGnSu3dv7tqioqLX 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 mXPhwoURHn9/f/+bb76Zfcfi4uLy8vJly5ZVVVWVlJRk5qe8vLz8/PydO3c+wuG6ePFiZj8tLS1t bm7esWPHl19+2dzcPH/+/PimoqKiQQMei4uLU6nU0qVLV69eHa8wvn5l2osvvvj+++/v2rXrk08+ aWpqigf35eXlVVRUlJSUZO7CwoULU6lUaWlpS0tL7rvwmBplFEXt7e3picizB+tNmzYt802RNnny 5K+++mq4tbW2tmbPNT9jxoylS5emUqmamprnnntu0qRJgxZoaGiIs9pojc8Wx6dR9vf3V1ZW5tgo oyi6dOnS3Llzh3w7J5PJIS8isWXLlt7eXt+nAAAAQ9IoR/1z97+xUUZR1NHREVenioqKUf1Uvn37 dllZ2XC7WVVV9fvvv9++fTv+z6lTpzLvntkoz58/f+jQoSG7TLoiffjhhxP8xTCejTKKou7u7o8/ /njkeTziNvT555/fvXs3l71ob2+Pr+34r1544YWffvrpkY/YxYsXM09MHvJ5b2houH79el9f3zvv vDMoj+bl5b300kuZKzx48GBmixyy4X7wwQf379+/du3aihUrshcYcijicB5fo4yi6Nq1a5s2bcrO kdmqHvozAAAF40lEQVTq6+svX7488trOnj27atWqHJ/W2bNnf/vttwMDA2N5/OOwxfFplFEUdXZ2 DnoiRmiUURTdu3fv008/jWdpH8HixYuPHTvmmxQAAGAEE3HCkAkomUzW1dWN9l6zZs3KrDzpWTLi uVBi5eXl/f396d+xI6ytuLg4fgwFBQWZNy1YsCB903BX8Uuf0vvFF1/EE6q0t7fHkwv/q6KiotOn T+/evXvfvn1XrlyJoig91Ku8vPy9995ramoqKCjo6+sb7uFlevjwYUNDQ3V1dWtr64EDB3777bf0 2qZOnVpfX79169ba2toJ/mJYtGhRvKdDHvCVK1eO9jqVmRf9HKSwsHD79u3btm3bv39/R0dHZ2dn OrjEde/ZZ59NpVL19fWNjY3JZDLHLW7YsGH9+vUnTpw4duzYzz//fPXq1Z6enswFZs6cWV5enkql NmzYUFFRMZYjVlZWduHChUOHDrW3t//444/xlNxPPPHEggULXn311aampngTra2tb7/99p49e06e PHnz5s2HDx/OmjUrnqElrbGx8ZVXXvn666+PHj165syZeCqSRCJRWVn52muvbdq0Kf3umz179g8/ /HD48OG2trazZ8/eunUrkUjMmzevqqoq98f//PPPP8JkU7lnu2+++aalpaWtre3EiRPnz5//888/ 41unTJlSWVlZV1fX1NSUfUZ8turq6pMnT547d+7IkSOnTp365ZdfBs1zVVBQUFZWVlVVtW7dujVr 1ox9rvNx2GJ1dXV6KO7MmTMf7UM7e7DnkGpqarZv3378+PH4P9mDQAel8JaWlubm5gMHDnz//fed nZ03btzIPHl/8eLFy5cvf+ONN+rq6rLLOwAAAJny49gBuejt7b1z587AwMDTTz89QhLN9N13373+ +uvpvzs7O2tqauKbHjx4cOvWralTp448LI5M9+/fv3PnTl9fXyKReOqppx5h2OaQenp6/vrrr76+ vilTpiSTyRFC8xjdvXv3jz/+mDRpUlFRUS7jB0eWHmra1dVVWFj4v/Eq6urq6u7ujqJo2rRpyWRy jG2rt7e3p6fn3r17iUQimUzmMiB37B8R47zFifbx+ODBg8LCwunTp489AQMAAPz/0Ch57EZolAAA AADwH4cAAAAAAAhIowQAAAAAQtIoAQAAAICQNEoAAAAAICSNEgAAAAAISaMEAAAAAELKj6LIUeCx GhgY+Pvvv9N/JxKJ/Px8xwQAAACAmEYJAAAAAITkXG8AAAAAICSNEgAAAAAISaMEAAAAAELSKAEA AACAkDRKAAAAACAkjRIAAAAACEmjBAAAAABC0igBAAAAgJA0SgAAAAAgJI0SAAAAAAhJowQAAAAA QtIoAQAAAICQNEoAAAAAICSNEgAAAAAISaMEAAAAAELSKAEAAACAkDRKAAAAACAkjRIAAAAACEmj BAAAAABC0igBAAAAgJA0SgAAAAAgJI0SAAAAAAhJowQAAAAAQtIoAQAAAICQNEoAAAAAICSNEgAA AAAISaMEAAAAAELSKAEAAACAkDRKAAAAACAkjRIAAAAACEmjBAAAAABC0igBAAAAgJA0SgAAAAAg JI0SAAAAAAhJowQAAAAAQtIoAQAAAICQNEoAAAAAICSNEgAAAAAISaMEAAAAAELSKAEAAACAkDRK AAAAACAkjRIAAAAACEmjBAAAAABC0igBAAAAgJA0SgAAAAAgJI0SAAAAAAhJowQAAAAAQtIoAQAA AICQNEoAAAAAICSNEgAAAAAISaMEAAAAAELSKAEAAACAkDRKAAAAACAkjRIAAAAACEmjBAAAAABC 0igBAAAAgJA0SgAAAAAgJI0SAAAAAAhJowQAAAAAQtIoAQAAAICQNEoAAAAAICSNEgAAAAAISaME AAAAAELSKAEAAACAkDRKAAAAACAkjRIAAAAACEmjBAAAAABC0igBAAAAgJA0SgAAAAAgJI0SAAAA AAhJowQAAAAAQtIoAQAAAICQNEoAAAAAICSNEgAAAAAI6R8xolt9Cy8DaAAAAABJRU5ErkJggg== --=-=-=-- From nobody Tue Mar 19 02:16:52 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 4TzFjK65m3z5FVdX for ; Tue, 19 Mar 2024 02:17:09 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic303-23.consmr.mail.gq1.yahoo.com (sonic303-23.consmr.mail.gq1.yahoo.com [98.137.64.204]) (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 4TzFjJ5wP3z51fF for ; Tue, 19 Mar 2024 02:17:08 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=Ue8WBzkZ; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.64.204 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1710814625; bh=oDWtsc9QPnzYENqA+XtK/TMrRJw28aXtQQmaU0EbBMY=; h=From:Subject:Date:To:References:From:Subject:Reply-To; b=Ue8WBzkZCR8gLvY7g1BQ0hsWhlr1WVuymKiHHqucrSZ3Ed4iUnT1M1fgkLFAcER7TtpWiv5Sri8rqRzWo9bSiV6cqZ/ZiSzt1LUqJOwUgIXRq/UbUElsq2VwgKId/vob8P+uW8d/QJEp5VxbkQOLrp6fgQ7ZSRTw2BoKyEMEFCI4IIvYrg5TcTeHcOi2wjHRoPH2jUOPb8ud55tCWhIgnRJVoAYwTuDzq9yOXdPWjzNFohznGMePkvBuXBSSI5v/mX8x9ojV3WMa2dnHwfShal297BLeiPA83WGN3U4KAHgZ2PBquzMSCj+ohhqMA5gDjcYxKIptYh2w8TB8SjR1aw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1710814625; bh=ZXAc1/FwYv/Y82C8ZVuCaQ6X0nUjzD9b5esvuHOGoyc=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=M2OsGtV0r8pyjZbudMdrjiJKqcNqvJ+ER271GHtjfKL2s21n5L3dDUg+YeX61IObBkm38RQMs/68Brvf6wZchcAbM2J31A4GQiEvEiwBYU2iSEmJD02Q/tL887hiC7EH/7bRfmR0guATHiUhJCRfJapkvkZZyli1ncop9At+PSsV1VHXc9aa6SN/0kqgjB5wRSBUdn3Apgs3kOMVFmUuO15SBRLcLyRpIcMISOpjaQP3P4wgn8nLh7FCOZPV/iH0oDVdOcHQggqCVHB4R7gGcQSh3GuSxIqPrPnMlIfrwb1OPlBMNfPlrnUWoC0F6heFAUtKBAwWKt6Q4KiZFwZ2vQ== X-YMail-OSG: 5tSZTjMVM1lah9Ivk672CtQx85j_9psr7qah_aZAJoGzpyw1VVmi0Aw59gVD6t. ztZPfzPNDgB4Fl22iuxRb2oO95jFgeXBx3YE0_F8gzbhEq1ZHr_Y7F1kVP8Rz9ZPlj6husYgHJBD 0r8trgGRq44DsnqVLR53PW.WxllmOqnY_57I4rxK._u1mcUknatp6niYX.1I6Z7c3kNRaWQgLw9u bRoQ4XHs0N.WeAve6MIgjo17STtLKVWeetcjsqo1ZMW1ksz2yZDFV5xDswNkH9Lj6Msy2C_wTbrK kIPy3pLu800_8pTmwBa5h9fZeFLJ3lfUoeLHofJVZCm7oBEWHsPrLgWetylVkKsGLsMraIaaRcez qsewUOGAt2R_dlJEIofOLx4AWYvErV.3hUnMc.HSYMlxkIGsULxXi95uEJJeJ.OYUUli.emDB3FM QeboMiwSwIP_whoYh5_QiocGr26DpfXc.H5jqNooQ588ykTfMssUCyWQar9TKSgY5eQAbsl2OLqH w_PtDsdkjzkkwP_zEDmF5VlaN2ZthWPc_0QROU4R6VTSIStQGx20zvTGW0A8aH91gk95YtJd.BRP oMp2QfLiKL7p.3VSiR4IMNzhapi0mPFwzwXoqVLV7Krw6JwH.rwntrfDT9ND9i5u2ZEBYeaggjB5 Udf9UqL_tSu4YZWoFU9J1_55BDoLeif1H.wfYMQxaBv.wnA1n77Eb18maIv9dm5zoioSrjoRsso7 FosmCK0oj.qLy6hjre5auscf7AfjIC9hXuxtAr9_Lx26xrx_yB07zh0L1l4S4zOmMBFnpKVjpL9r ALmY4GxYdlHGVrHJ1AhygWT0zMR2hEcAb8Of7TYk81syhKbrO9RLCS1hgQ6Rb1pby5gsA8yl6L_0 aUCWdzrQqQEjAMxyd8v1sPUZRpHs3LHqowD.3aPutprR8T.vy6gZNKO446WJg_MauTh91NXCFRVF mXKv6uvNOsCaAZ_0rTHkXelfY.54lqure3xFiwthrkcvwTwIbkCMstg0ESvp7tbcasumm4JHUMg7 Vq7MDVIxZi00JNfa7YkzZgjA5QlYYp2_MKyrOHrgBA87jN4wqrnumT.N6HRMYv94EFHCH5y078wp FZF.nSz8mA4P.tp9EfzOxLhu0OiVjf1OUdZyUyiuW39cFvX8D9sSDVKy3dnDMLslg3rX.CG14E__ eXaXNbCTLc7kkVw8hrYcfk_sK4keQ.DfsWGWKd336wmeBK76_2EXfeoEytVGtCMHySQYXm_iGIyJ N4ntI80B6vj.ZSqSK.i27Sy8egKb0vKMaNXhfZp6AsGg.i22.adI0ZRphn4SHIRMP6vLOarFIaX3 U5eL7ve90NDQJY_lD9k._aJi_M76nZmQU6a5tWsY7VAlmrDNUJaDY2zZuT31zwz1RjtdOd.OtVrv c.5s5p8UVmEmNnN8ygyvz8cGXRiV9J9gcguIVWtl2UUkLouHadNNZYjO2JVFEM2U6WSGLIrJRJmY 7k83mzc.vPz3uMxt0dALPt39j4iLnFgRrR8A2h9ni3ogkepBuF0W78uLasMHB6gP6kxZngDBhBWC 38kYBAmjUTpHtC0EeTCX595XnkvZ7n6Us_q4zh8LEzATKm2gB81FWcCfhcHp2IVA6t9vLHrctjaJ Fk3NV33dhh2F6kr6MESaoNqIQafi_gUWCEBdUemrIBYtbeWuqJamJTqFmtiYbxn5U7LSy6sgyxjh PVhp4XtqMTa0oTniU26WReRnVkzId84MXVT9YwZQSZjIvGgCu6VvlFWemCSZjR8rLnYGUZ9rpu9N bI9FceITDxomFEcd4zI0totZmoEdB1osZXiFcKetg6BQ6Lg11H_cdKLjqr.iGBIBBl50z05.tkrd EaJ6JjLj0VK0mmd7qTsTeKot_kBmZqliuyn87VeQNn9qOXtbb7LxVsd1Fo82JvSlujLttnziB_WX 32oP1wPHz0xmSTwPV2EpTLpSlbvcqtyQ8Ao_MAWRE3sq7PvTOGb8H0l1CygMlNG8NP4t86MNF_2Q k3YjwYTyBaAaW_.cPiypTGDrxkZzDzQ4LfR2FeqI2qWMJocFkttk_xppBHrp6REtahcPQlEiaWr2 _rLDALT_eJlzmNGhcLwytv.wb2Grno5cx3p4ZyifQzegNQbc7auwMIKd9GqkK3TQbagy_ttwATIz Z0fHqgodg5gyNOcjuUfJlejYpmwih_QNqIEUmUUiwC2.f0NyWMymQ74pE54oblEXSCL.KmLz2pak cPQT9_COYmvh3VfZD1zQCv7PpfmPizyRBxjQ3yMuKpsOIgYkJJDmUXk5VVF2D X-Sonic-MF: X-Sonic-ID: 4dda7e7d-6b7f-4023-9c32-7d4794b5ffa0 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.gq1.yahoo.com with HTTP; Tue, 19 Mar 2024 02:17:05 +0000 Received: by hermes--production-gq1-5c57879fdf-9nrfh (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID bd8fd448698031a9442f5c4df8ceadb8; Tue, 19 Mar 2024 02:17:02 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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: Could not run poudriere-devel jails on rpi5 serial console; could in ssh session; after reboot both work Message-Id: Date: Mon, 18 Mar 2024 19:16:52 -0700 To: FreeBSD ARM List X-Mailer: Apple Mail (2.3774.400.31) References: X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.94 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.94)[-0.945]; 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]; RCVD_TLS_LAST(0.00)[]; TO_DN_ALL(0.00)[]; FREEMAIL_FROM(0.00)[yahoo.com]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; RCPT_COUNT_ONE(0.00)[1]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.64.204:from]; APPLE_MAILER_COMMON(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.64.204:from] X-Rspamd-Queue-Id: 4TzFjJ5wP3z51fF In order to track down some about what was going on, I temporarily touched /usr/local/share/poudriere/common.sh to report why the injail id was being rejected: + jexec -U root main-CA7-default id jexec: jail_attach(19): Operation not permitted 19 is ENODEV, which is not listed in the "man jail_attach" output. I was logged in as root, running poudriere as root. But via the rpi5 serial console for the failures. The rpi5 was booted via the EDK2 UEFI/ACPI. After rebooting, the issue has not repeated so far. So I can not gather more information at this point. This was the first time I've had such an issue, prior serial console sessions were normal for running poudriere-devel on the RPi5. === Mark Millard marklmi at yahoo.com From nobody Wed Mar 20 09:30:50 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 4V03HH1Yq4z5F5RT for ; Wed, 20 Mar 2024 09:30:51 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V03HH0b5Bz4Qp8 for ; Wed, 20 Mar 2024 09:30:51 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1710927051; a=rsa-sha256; cv=none; b=Gg/JCyTfZG8qOJ9S/mA0+4pasZe0TEvZbBujKPuu4OqWfn+nruPVdNtMEiPWn+BJQIpBNc O118EYYrvagrYjz/SzxTMQVnvmmRVwA+Y0zJINek9q8WmwcfqII2u/QnQaitq/MrT1QJh1 NnN+pzeE4j2JZc+v6qQlNLI+RTj5Bx9+inlHzh86p/BWoitMC2WyDmo5uu3jpi+xZlOjDP B9TawM62R1sFwLuZy7WCdzVVRzGEFotxP1BEx77kkzQJOXigzzsr8OHJksCsbfonxMfeOm 8uDB48DAI1OXIY1sETNyBJ5Rm5mYuKYEVmVGzOpIQowWUpr5NaPal8mC7eBIoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1710927051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1JeCjw72cHOdLsZjdOZUpsRqZdDm1PG96t6gKBeCAfU=; b=StIl8/lbV6fqZnTSZz564Sqb0o3gSuAKalqLtoaJ2SYIZBoPYd2KuwlF4ZYUcMAe7BOqkU uKj8T8RFTcadzlUFShqEs4GNHVyR4ZOPGO/ucRRc6mPekpqzmDXm1dj5fxEiJJdh590qys 7vpWMsMOB1NXkJQe5K9UQ3NAJbRuKx4pju96rl6Yj+d6u8ZH0PbzdC/Qea+mGdJnhcqj6o hz9eZe7zEWJ9kfHVI+rWjiE9ssNhJL/h0VQ/iHeQmPn4v4b9GhvGX4qTdwWj+Zn83/FrHv g+APMs46NtPqxPRp80Uo8fUPJwBH2+Ckdf/Hcpz2me4XWbTS/S+2079ay4H9cw== Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4V03HH0882zm5B for ; Wed, 20 Mar 2024 09:30:51 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 42K9Uo1K040470 for ; Wed, 20 Mar 2024 09:30:50 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 42K9UoR3040467 for freebsd-arm@FreeBSD.org; Wed, 20 Mar 2024 09:30:50 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: freebsd-arm@FreeBSD.org Subject: [Bug 276403] FreeBSD arm64 image disappeared from Oracle Cloud Date: Wed, 20 Mar 2024 09:30:50 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: arm X-Bugzilla-Version: Unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: dch@freebsd.org X-Bugzilla-Status: Closed X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-arm@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status resolution Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated 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 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D276403 Dave Cottlehuber changed: What |Removed |Added ---------------------------------------------------------------------------- Status|In Progress |Closed Resolution|--- |FIXED --- Comment #5 from Dave Cottlehuber --- They're back - thanks everybody for your patience and support. Note that, as these 13.1-RELEASE boxes fetch patches before letting you ssh in, that can take a few minutes before they're available for ssh. % uname -a FreeBSD instance-20240320-0856 13.1-RELEASE-p9 FreeBSD 13.1-RELEASE-p9 GENE= RIC arm64 % sysctl hw.model hw.model: ARM Neoverse-N1 r3p1 % sysctl -a |grep -i oracle da0: Fixed Direct Access SPC-4 SCSI device ORACLE BlockVolume Obviously the next task is make 14.0-RELEASE and 13.3-RELEASE images availa= ble, you can follow https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D277831 f= or updates on that, after Easter. --=20 You are receiving this mail because: You are the assignee for the bug.= From nobody Wed Mar 20 18:26:49 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 4V0H9s6b3Dz5DcMP for ; Wed, 20 Mar 2024 18:26:57 +0000 (UTC) (envelope-from joseph@josephholsten.com) Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4V0H9s1Y4Hz47HX; Wed, 20 Mar 2024 18:26:57 +0000 (UTC) (envelope-from joseph@josephholsten.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=pobox.com header.s=sasl header.b=ocqU1vMa; dkim=none ("invalid DKIM record") header.d=josephholsten.com header.s=2016-12.pbsmtp header.b=iYMSBM+Z; dmarc=none; spf=pass (mx1.freebsd.org: domain of joseph@josephholsten.com designates 173.228.157.52 as permitted sender) smtp.mailfrom=joseph@josephholsten.com Received: from pb-smtp20.pobox.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 185353154B; Wed, 20 Mar 2024 14:26:55 -0400 (EDT) (envelope-from joseph@josephholsten.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-type:content-transfer-encoding; s=sasl; bh=C6TWWUrKoUnq oAsf1iOS1cTGcN+XBUtioL+TYQGymuc=; b=ocqU1vMaoHeE2D4bY7gBpM9bAdNZ mJBzbGQkjthEhSwmglDQtrt9MsGO5vnxbaPQXKPSGWMFLn8MIVDTqQARgT4Ognwe EWHPQdocOQpmQz13/dpLSTs3C8/xH+qDfRtqDPyHeNWQ88cME1d+oFwdh/Nnb2qb 23jF4MNArgA9644= Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 1071E3154A; Wed, 20 Mar 2024 14:26:55 -0400 (EDT) (envelope-from joseph@josephholsten.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=josephholsten.com; h=from:to:cc:subject:date:message-id:in-reply-to:references:mime-version:content-type:content-transfer-encoding; s=2016-12.pbsmtp; bh=C6TWWUrKoUnqoAsf1iOS1cTGcN+XBUtioL+TYQGymuc=; b=iYMSBM+ZlCESPfHBQT9d21/emWkCOrOpkTK+jNGGfYwNrW7KTuHelPQYP8Y1nkDkXevxrLQkRQRWH9ZoPZaHN7/RMeXYVeDboQXYstZRvOZMo2QCK4eigQbRT4kp6ueD+EOJvtl/ORgWUpN6Ocs2v7QtL+XLv8D5WMok95x2/JA= Received: from [100.109.181.67] (unknown [50.46.198.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp20.pobox.com (Postfix) with ESMTPSA id BCA8B31548; Wed, 20 Mar 2024 14:26:50 -0400 (EDT) (envelope-from joseph@josephholsten.com) From: "Joseph Holsten" To: Quelrond Cc: freebsd-arm , "Dave Cottlehuber" Subject: Re: free ARM VPS Date: Wed, 20 Mar 2024 11:26:49 -0700 X-Mailer: MailMate Trial (1.13.2r5673) Message-ID: <8BA043CA-E7CA-4F6F-9225-3846AD3F541D@josephholsten.com> In-Reply-To: <7de98132-5bd0-4ae9-8874-25951062f743@app.fastmail.com> References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> <4a896a4e-cdb5-4351-ad29-8e014321f776@gmail.com> <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> <28f13a30-a9ee-4eda-bd42-b1384dfecf37@gmail.com> <181052a9-b815-48b3-a215-97b4e7bff315@gmail.com> <7de98132-5bd0-4ae9-8874-25951062f743@app.fastmail.com> 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 Content-Type: text/plain; charset="UTF-8"; format=flowed; markup=markdown Content-Transfer-Encoding: quoted-printable X-Pobox-Relay-ID: 6B6759B0-E6E7-11EE-906F-F515D2CDFF5E-15777318!pb-smtp20.pobox.com X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.60 / 15.00]; DWL_DNSWL_LOW(-1.00)[pobox.com:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; R_SPF_ALLOW(-0.20)[+ip4:173.228.157.0/24]; R_DKIM_ALLOW(-0.20)[pobox.com:s=sasl]; MIME_GOOD(-0.10)[text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[173.228.157.52:from]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; DKIM_TRACE(0.00)[pobox.com:+,josephholsten.com:~]; R_DKIM_PERMFAIL(0.00)[josephholsten.com:s=2016-12.pbsmtp]; DMARC_NA(0.00)[josephholsten.com]; RCVD_COUNT_THREE(0.00)[3]; RCPT_COUNT_THREE(0.00)[3]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_MIXED(0.00)[]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:29838, ipnet:173.228.157.0/24, country:US]; MIME_TRACE(0.00)[0:+] X-Rspamd-Queue-Id: 4V0H9s1Y4Hz47HX On 17 Jan 2024, at 11:41, Dave Cottlehuber wrote: > On Wed, 17 Jan 2024, at 14:00, Quelrond wrote: >> Hi, >> >> I've just open a FreeBSD bug to track the problem: >> >> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D276403 >> >> Peter >> >> >> On 12/01/2024 17:09, Dave Cottlehuber wrote: >>> On Thu, 11 Jan 2024, at 22:35, Joseph Holsten wrote: >>>> Well, that=E2=80=99s no good. I just checked and I cannot see it eit= her. >>>> >>>> I am able to use the image using the id: >>>> ocid1.image.oc1..aaaaaaaayjatgvecms7kciqjx5exbj4dpcs3ympvpggpodwlfue= zn7dejdja >>>> >>>> Dave: have you heard anything from the marketplace folks? It feels = >>>> like >>>> we=E2=80=99ve gone the wrong direction. Did they let you know the 13= =2E1 = >>>> image >>>> would be removed? > > The cloud(tm) has had a leak, and the image evaporated. We're chasing = > them > up and will let you know when things change. > > (insert weather or circus related puns here) > A bird has informed me that an 13.1 UFS image has returned. Thanks dch! Some other images are planned, tracked in = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D277831 -- Joseph Holsten +1-360-927-7234 joseph@josephholsten.com From nobody Thu Mar 21 06:56:50 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 4V0bsp17nTz5FKtG for ; Thu, 21 Mar 2024 06:59:10 +0000 (UTC) (envelope-from dsl@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V0bsp0dmvz4f42; Thu, 21 Mar 2024 06:59:10 +0000 (UTC) (envelope-from dsl@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711004350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W0pMyOFfxWV3tnqtDF0sb/tlB+3S87RzUzo8t87p/0Y=; b=Jjn1Jy9jroUKR07cc/f5p99J0l2x3fAde+RvsvoSIlDdapC2pOuGmrZwPJqrKAFKPQjpCI zNnbpDp09YvLwDEGHRGLQJdikomRo5kSkPwFw5ZzgZW9+NX7pc6t6HozoEDqOd+Y4IYBoo Ig0F1RB8oU7c9VOwnd2eSyAw0Y07KrKcKf6cUE3ctB7yjx95Ubrkrqz5we2mn0zzPfDyw1 rFbdp0h7/HnlIiQZYy2gCZ2Z/fawfp8C13K09AejeQ3Uy5xvGf/CVh7M/yZkCdYlj8t3oS ffUh5GLRGpMY6EBsyc7Atg7riJmsFcZrjMKP8qQd5j+iWJzHaORq4yA7cuGYwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711004350; a=rsa-sha256; cv=none; b=LY9xH2XLXL3IvZDi2eW7GY6+XtzPm+FFGIO9xL9cXNBmqHjX4BR0V5PvphrdrC4jLIFj/l THLFHM8yb/yToXsnukFCXZDnEkpSBmM2bnxhdzAkAum+RGCantpVlFqXEFJHWxJ1D/SDP+ LKg7s+iuzcZf1PiRrtiQKUxFLYob9mqckGy572XFvzqnbIBf8Be1OHdDofx3y07dXcbk6Q WCdOieUiNmHW7pUXV2qbpCwmZzaNOWGcv+dzdCVaoBoBO48NVTX893SZqlAthB+HoVhCqA cgx221B3aoqXaQX+CRQ+KjXfwG5yAGNvgDtJa9s4NMjXuV+m/uxMUHzHAdrGGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711004350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W0pMyOFfxWV3tnqtDF0sb/tlB+3S87RzUzo8t87p/0Y=; b=F9y/kplGMTQlg269HfGpCHJyVWBSqyxuqWato4eEy0CG5WrAUVk2+VNj40ia0BIvLKj4g9 ivgHTbGHO53bY54zTc4wBSbA0OGnOkZxLKYFY2fpTZYMfuzDBmKrNZVYBRgc2FDMyGsgcm M3cTfPromQlwrv2HMAUP4n0OVCxxRRsMPfjMLdm1AOkoaXbCSIyK1IHUaZdX9AWOunfHIs ulNphgu6K+AqU5OifTlkLgEPfx8XUqWf63DljD1PoTTkW5MRFN5R2MaOkQGPx1SzOkVkXN 1TGn0yy6RqHI0heZfxTEhibs2ox65HTg3Bvxn4mybvQk2/JGr1j4858C9+8fuA== Received: from localhost (unknown [91.226.51.235]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: dsl) by smtp.freebsd.org (Postfix) with ESMTPSA id 4V0bsn5NL6zdFY; Thu, 21 Mar 2024 06:59:09 +0000 (UTC) (envelope-from dsl@FreeBSD.org) References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> <4a896a4e-cdb5-4351-ad29-8e014321f776@gmail.com> <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> User-agent: mu4e 1.8.13; emacs 29.2 From: Dmitry Salychev To: Joseph Holsten Cc: freebsd-arm@freebsd.org Subject: Re: free ARM VPS Date: Thu, 21 Mar 2024 07:56:50 +0100 In-reply-to: <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> Message-ID: <864jd0ul39.fsf@peasant.tower.home> 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 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable "Joseph Holsten" writes: > There is a FreeBSD image in the =E2=80=9CMarketplace=E2=80=9D. There was = a mixup last fall and 14 isn=E2=80=99t up yet, but some foundation folks ar= e actively working on it. If you use the official one, it=E2=80=99s just a = quick freebsd-update to get you there. > > If you have trouble with the service, feel free to yell at me. Juggling s= upport tickets and ops projects for Oracle Cloud Compute is my day job. I u= se FreeBSD daily outside work, I want it not to suck. Is it really suitable as a replacement for a RootBSD/NetActuate VPS to run a mail server + some minor pieces? Regards, Dmitry --=20 https://wiki.freebsd.org/DmitrySalychev From nobody Thu Mar 21 07:25:51 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 4V0cT16H2Vz5FNcX for ; Thu, 21 Mar 2024 07:26:13 +0000 (UTC) (envelope-from dch@skunkwerks.at) Received: from fhigh8-smtp.messagingengine.com (fhigh8-smtp.messagingengine.com [103.168.172.159]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 4V0cT14RJJz4j0x; Thu, 21 Mar 2024 07:26:13 +0000 (UTC) (envelope-from dch@skunkwerks.at) Authentication-Results: mx1.freebsd.org; none Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 26F9F1140131; Thu, 21 Mar 2024 03:26:12 -0400 (EDT) Received: from imap44 ([10.202.2.94]) by compute2.internal (MEProxy); Thu, 21 Mar 2024 03:26:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skunkwerks.at; h=cc:cc:content-transfer-encoding:content-type:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:subject:subject:to:to; s=fm3; t=1711005972; x=1711092372; bh=yTDGzMhEc1ygOl2dCJ6VA1RfKPywkSiS nMlOVxdojB0=; b=Rb2qmW8tVo9+7nzuajhB9D4xjLpxs3oDA93Vmsfdx58joagk 3v7Z686nWQQUrrMCouXRWMx2k/4dwnWNnRvEEPFUGlPk14txNl+z1C1fgbAdtNWb WnkdDVKBOeED31mKkqU19qX7eICy09MR2BeJnVzMSrhS+LVjda9+7VLMBdh9YDFU KIM683RA5uiCv5F2LKz867bc1LQN155ozETJyzQsynBv9W2aJFdYI6HiHXW/epYY BJbTJoN5bjmYdLm3oh3XY1Y9r42F/tKetmFYn6QbGNVs9fQHbNzLBBl+4J5hlK8I 7aJpQmyWiJpXD2lsFOG2fOyAvktaJ9XBMTVXwg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711005972; x= 1711092372; bh=yTDGzMhEc1ygOl2dCJ6VA1RfKPywkSiSnMlOVxdojB0=; b=Q 99itdNViQ8CQpMU7f0xvJXOH4LFcRdrvOah9U2lqSUDXzLLM7oAicIwN0eZgBd26 oFkL/ha33tvdflZ+Q9C3Z1VzqirP7Gzs/umG11Mif0zk2nzxKNOevJ6ST8lRfUDW 7thzk2lVZDtXaRuSF3zz9omwVu/Ph+CJuNnlMxtk+QFY+ZnBrcoyc+Mz+YyNaItB 5a3lxafscxUPOB+HcfXEQKSauI94qv6V4QAsfI4OYc6cO1zSHQxAV+npwYF26sfR wVY/kJ3QRn9iEBZCtcNDVcLWWBNBImpuZLttK1cAwBzU2VHZUmYAtddVFXKtw/HU HReg7cSxWGvANRUyvifLQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrleehgddutdejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtgfesthhqredtreerjeenucfhrhhomhepfdff rghvvgcuvehothhtlhgvhhhusggvrhdfuceouggthhesshhkuhhnkhifvghrkhhsrdgrth eqnecuggftrfgrthhtvghrnhepkeffvefggfeiheehvddugfdvffduieelgfefkedthfej tddttdetheetffdutddunecuffhomhgrihhnpehfrhgvvggsshgurdhorhhgnecuvehluh hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepuggthhesshhkuhhn khifvghrkhhsrdgrth X-ME-Proxy: Feedback-ID: ic0e84090:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id D54A636A0076; Thu, 21 Mar 2024 03:26:11 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.11.0-alpha0-332-gdeb4194079-fm-20240319.002-gdeb41940 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 Message-Id: <960f1b83-b169-4249-946c-c8f7f31595db@app.fastmail.com> In-Reply-To: <864jd0ul39.fsf@peasant.tower.home> References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> <4a896a4e-cdb5-4351-ad29-8e014321f776@gmail.com> <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> <864jd0ul39.fsf@peasant.tower.home> Date: Thu, 21 Mar 2024 07:25:51 +0000 From: "Dave Cottlehuber" To: "Dmitry Salychev" Cc: freebsd-arm , "Joseph Holsten" Subject: Re: free ARM VPS Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:209242, ipnet:103.168.172.0/24, country:US] X-Rspamd-Queue-Id: 4V0cT14RJJz4j0x On Thu, 21 Mar 2024, at 06:56, Dmitry Salychev wrote: > "Joseph Holsten" writes: > >> There is a FreeBSD image in the =E2=80=9CMarketplace=E2=80=9D. There = was a mixup last fall and 14 isn=E2=80=99t up yet, but some foundation f= olks are actively working on it. If you use the official one, it=E2=80=99= s just a quick freebsd-update to get you there. >> >> If you have trouble with the service, feel free to yell at me. Juggli= ng support tickets and ops projects for Oracle Cloud Compute is my day j= ob. I use FreeBSD daily outside work, I want it not to suck. > > Is it really suitable as a replacement for a RootBSD/NetActuate VPS to= run > a mail server + some minor pieces? Hi Dmitry, Yes. TLDR consider them as fully fledged server CPUs because they are. The hardest part is the signup process: - https://people.freebsd.org/~dch/posts/2021-06-02-oci-signup.html It's a standard arm64 CPUs from Ampere (hw.model: ARM Neoverse-N1 r3p1) and quite capable of running anything. I run DBs (PostgreSQL, CouchDB), DNS services & Phoenix web apps off them, all in jails ofc. The free tier gives 4 CPU cores (no hyperthreading garbage!), 24GiB RAM, and IIRC up to 200GiB storage. That's plenty. Here's an OCI ampere doing `openssl speed` (single threaded) but very non-scientific as the ampere is running 14.0-RELEASE, and Ten64 is ofc running CURRENT DEBUG + witness. Ampere: (14.0-RELEASE GENERIC) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 = bytes 16384 bytes sha256 77675.94k 280389.41k 774386.13k 1396836.35k 18295= 90.81k 1871025.49k Ten64: (15-CURRENT DEBUG) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 = bytes 16384 bytes sha256 13622.39k 50566.72k 166540.20k 387515.05k 6412= 43.92k 665962.87k If you want to test something let me know. A+ Dave From nobody Thu Mar 21 07:32:56 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 4V0cd62dxZz5FPQm for ; Thu, 21 Mar 2024 07:33:14 +0000 (UTC) (envelope-from otis@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V0cd61wbnz4kdy; Thu, 21 Mar 2024 07:33:14 +0000 (UTC) (envelope-from otis@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711006394; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OIjUa3rv9Ivw7EUi8KWSptMuSVnMzGoSIhH9lCYX1pk=; b=bd0REJW+Vyfvs4yM7U2VpM3CoWWUbBOL9rwq1MNKosAQ08ACsMcEQu0RcsujcENdcQ0oBw yqVv7nXK451oH8nkBjkIVueeov0JUN075GBtClA7Y6HPl8yML3MLfnfSltxsLvdFQAY9tG hn7JW5QEbmjP3EDdL+HdMa6d5oToGxPyMDNnlANGGvM0v0+Y1dbbnAJzy6eFyZqYUZrVWu HwHKlogWiugnC8GH/j96B9wreG8xTpL2fQHwvyI64J4tXeCoP2EWqzNhe/O6FcE7RlwW6q guuuCNZh6LIy7NXcPo/8zeytD2yhTlyZ6jQETbYYaQt4/Ac76Uncq6ejAVNw0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711006394; a=rsa-sha256; cv=none; b=lmqYctZdWh7w92QnJPsJYIxAn6vA0YMzUp2u5H/K7xU3pNhQxownlEC5g77ffjsozOA1Lr TZUggMGXEm0PQUq8Hmk2MDzkf+ImnJkLaKxIumMhOJN9aJKsD96UgzANDWN69sBfD8Y8yR fsqXulZA/wiQ4fzoamyFhkEMtwyjTXFX8pmLPXhPNj3pNpRSLmxGbxZA4fkuRDawtwlkrw 6679iDbMA/HIUhqSuF2Y6UVHZ7kzW1LDVXkcZCN+Rgmrc2gKx6/A1uZPhNjcDH9QOga7X6 PM9NaYYYNAHCkwhanf869jNc7Os3v/4BGiklcR3LXn6osesXJamhJdOUY5Vhtg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711006394; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OIjUa3rv9Ivw7EUi8KWSptMuSVnMzGoSIhH9lCYX1pk=; b=ZojgjbHDJ4i8TworKFbsr1dWM+xC5gXQksWGK4J+kFt64V4uAr8iyvMKbxX1FJtnr9HssC fOcuhMHNVBpm78pwQsmqrm5G9eYBNpneHTPA/vcCLlrbTUCRNpTRj4XeXSaUTFGO9XyVAW 7ZdgkypdlyKS6lWjvMfOYe+ha6bvSeTMd6NSE+lpc3i1E+cTpYFE9ip//CWQIvb3MELZiV Lvqg3c/GRO8RFq2VR9r+bBSX7dhf43Xg1w+4+xGHfla5xycJzt7PO8DzJSQLDSzkMsi9jF WsgiQWw/QD2Vzuxl+aty5yIs0HIQNewgxchc4CVuurkwzqVU72/Nv9elDZAJpA== Received: from ns2.wilbury.net (ns2.wilbury.net [92.60.51.55]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (P-256) client-digest SHA256) (Client CN "svc.wilbury.net", Issuer "R3" (verified OK)) (Authenticated sender: otis) by smtp.freebsd.org (Postfix) with ESMTPSA id 4V0cd60b3vzdV5; Thu, 21 Mar 2024 07:33:14 +0000 (UTC) (envelope-from otis@FreeBSD.org) Received: from smtpclient.apple (gw-upc.owhome.net [188.167.168.254]) (Authenticated sender: juraj@lutter.sk) by svc.wilbury.net (Postfix) with ESMTPSA id 9017761F97; Thu, 21 Mar 2024 08:33:11 +0100 (CET) Content-Type: text/plain; charset=utf-8 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: free ARM VPS From: Juraj Lutter In-Reply-To: <960f1b83-b169-4249-946c-c8f7f31595db@app.fastmail.com> Date: Thu, 21 Mar 2024 08:32:56 +0100 Cc: freebsd-arm , Joseph Holsten , Dave Cottlehuber Content-Transfer-Encoding: quoted-printable Message-Id: <29B41DA7-1D72-4983-99F7-45D372CBCC48@FreeBSD.org> References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> <4a896a4e-cdb5-4351-ad29-8e014321f776@gmail.com> <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> <864jd0ul39.fsf@peasant.tower.home> <960f1b83-b169-4249-946c-c8f7f31595db@app.fastmail.com> To: "dsl@freebsd.org" X-Mailer: Apple Mail (2.3774.400.31) Hi, > On 21 Mar 2024, at 08:25, Dave Cottlehuber wrote: > It's a standard arm64 CPUs from Ampere (hw.model: ARM Neoverse-N1 = r3p1) > and quite capable of running anything. I run DBs (PostgreSQL, = CouchDB), > DNS services & Phoenix web apps off them, all in jails ofc. The free > tier gives 4 CPU cores (no hyperthreading garbage!), 24GiB RAM, and > IIRC up to 200GiB storage. That's plenty. >=20 I can only second that. If you are interested, I can provide you a = =E2=80=9Ctest drive=E2=80=9D account on my box to evaluate whether your own VM makes sense. otis =E2=80=94 Juraj Lutter otis@FreeBSD.org From nobody Thu Mar 21 07:36:42 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 4V0ct75gmVz5FQYc for ; Thu, 21 Mar 2024 07:44:31 +0000 (UTC) (envelope-from dsl@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V0ct73Rtdz4m0R; Thu, 21 Mar 2024 07:44:31 +0000 (UTC) (envelope-from dsl@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711007071; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g4xna/yYd7gD6wLRZTNlKo4XPBnECRG4nNeBdhBVnos=; b=V/glyKYFhHmvzG5kR+YZd4RoPZARSRyAEa1E9Jfte78ZcJFjLYyJ0u7CjAJELgSO/AsS4/ g6yq01XiBqC/0DPaXTnUq7VagVWWA0BQe1EtHp0VK8i3WNg0a+dvgLc9ODdIuOiC+oKipN fIt+wbJiScL3FXD4r7C5HrHvM6PPkrO35Zc8KvEjrN9lV+jj2p7xZnnWXDCU1ryhJ3j/+R ZOZ1MPpfkmtd4G2mrZwFDikGap17Lvr0yiwKp1eW/GnUSqQwkPGGQZT+2BkSlMagz/Zchx MYiBVkf5yyknB9YR5RI3RQy2ch+1ZzGvoIhQudSem6Eu4VHGHh37eXoRNJvGYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711007071; a=rsa-sha256; cv=none; b=hQL7MGlUaq/5pnQ3sTMJmjD6CBDqlquhgBAG2TSDBuea8JKZae4YI0YAcl8PsYxoL0Fp9l RdKcKf2cOk0+7jOF2L+a5b8yvYthCBNVW2RF3EIPSL6CKxPee1ogcO+aem2EgXya0yK3OI KTac3HMxrJF6ouK0p6E+q6x7U95iYq18sMpGyxJvxXIlcD8XWCDpJwGf5l/vDn7E2phLTz ME2qFhaK8PJHuYs06Bcay8OfK/TZ4QNhNIEKsmQaUNm7+5VlNWyOdRw43C29b11nOxnTgZ c2NEAF9XJQvaXZf6xPOv9Ud5CxyUzPPaIybTk4fH9dSCu2w4G8XJiE0bCU12HQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711007071; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g4xna/yYd7gD6wLRZTNlKo4XPBnECRG4nNeBdhBVnos=; b=PIKMnb/kFfTpuSIeRdCV/G9GcljRRJ5g3bizwPHXB6rdEVZZNBL6Q1XabOSYM3piiHIaaN nz+aw0Z+WhGktj3Q3oU921IyCNHo98vG5diuG/gXA+rkVB7P+u2Fs9FtSeB6XY9mKkUigM nGdGOsk3mGCfpY0RAGGADGc6fq5n747H/GGFdqKgDnQwogSZLOKezSLrgN6SRtLmQcaFFr pKfXiAZRmUz6QCdeD06rTRGg1CKZ8ByskshzVqMHPSBAhIIPqTv54pDgM9/eiNfDtoyeAu ce2UeUqyP9fj/8+VC7hvOes+2PtZwo3aq41gC8XF7VJvESUf/kmhwahaq8JyUA== Received: from localhost (unknown [91.226.51.235]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: dsl) by smtp.freebsd.org (Postfix) with ESMTPSA id 4V0ct66TYzzcS4; Thu, 21 Mar 2024 07:44:30 +0000 (UTC) (envelope-from dsl@FreeBSD.org) References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> <4a896a4e-cdb5-4351-ad29-8e014321f776@gmail.com> <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> <864jd0ul39.fsf@peasant.tower.home> <960f1b83-b169-4249-946c-c8f7f31595db@app.fastmail.com> User-agent: mu4e 1.8.13; emacs 29.2 From: Dmitry Salychev To: Dave Cottlehuber Cc: freebsd-arm , Joseph Holsten Subject: Re: free ARM VPS Date: Thu, 21 Mar 2024 08:36:42 +0100 In-reply-to: <960f1b83-b169-4249-946c-c8f7f31595db@app.fastmail.com> Message-ID: <86zfust4f7.fsf@peasant.tower.home> 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 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable "Dave Cottlehuber" writes: > On Thu, 21 Mar 2024, at 06:56, Dmitry Salychev wrote: >> "Joseph Holsten" writes: >> >>> There is a FreeBSD image in the =E2=80=9CMarketplace=E2=80=9D. There wa= s a mixup >>> last fall and 14 isn=E2=80=99t up yet, but some foundation folks are >>> actively working on it. If you use the official one, it=E2=80=99s just a >>> quick freebsd-update to get you there. >>> >>> If you have trouble with the service, feel free to yell at >>> me. Juggling support tickets and ops projects for Oracle Cloud >>> Compute is my day job. I use FreeBSD daily outside work, I want it >>> not to suck. >> >> Is it really suitable as a replacement for a RootBSD/NetActuate VPS to r= un >> a mail server + some minor pieces? > > Hi Dmitry, > > Yes. TLDR consider them as fully fledged server CPUs because they are. > The hardest part is the signup process: > > - https://people.freebsd.org/~dch/posts/2021-06-02-oci-signup.html > > It's a standard arm64 CPUs from Ampere (hw.model: ARM Neoverse-N1 r3p1) > and quite capable of running anything. I run DBs (PostgreSQL, CouchDB), > DNS services & Phoenix web apps off them, all in jails ofc. The free > tier gives 4 CPU cores (no hyperthreading garbage!), 24GiB RAM, and > IIRC up to 200GiB storage. That's plenty. > > Here's an OCI ampere doing `openssl speed` (single threaded) > but very non-scientific as the ampere is running 14.0-RELEASE, and > Ten64 is ofc running CURRENT DEBUG + witness. > > Ampere: (14.0-RELEASE GENERIC) > type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 b= ytes 16384 bytes > sha256 77675.94k 280389.41k 774386.13k 1396836.35k 182959= 0.81k 1871025.49k > > Ten64: (15-CURRENT DEBUG) > type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 b= ytes 16384 bytes > sha256 13622.39k 50566.72k 166540.20k 387515.05k 64124= 3.92k 665962.87k > > If you want to test something let me know. > > A+ > Dave Hi Dave, 4 CPU cores, 24GiB RAM, and 200GiB storage is significantly more then I'm paying NetActuate for on monthly basis :) It looks like I needed an account yesterday. Thanks for a comparison and all of the details! I'll try to sign up an tinker on my own first. Regards, Dmitry --=20 https://wiki.freebsd.org/DmitrySalychev From nobody Thu Mar 21 08:27:55 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 4V0dsS2PW7z5FWZH for ; Thu, 21 Mar 2024 08:29:00 +0000 (UTC) (envelope-from dsl@mcusim.org) Received: from mcusim.org (mcusim.org [IPv6:2a00:dd80:3c::e63]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 4V0dsR5bmZz4rfM; Thu, 21 Mar 2024 08:28:59 +0000 (UTC) (envelope-from dsl@mcusim.org) Authentication-Results: mx1.freebsd.org; none Received: from localhost (unknown [91.226.51.235]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mcusim.org (Postfix) with ESMTPSA id 1102E1133C; Thu, 21 Mar 2024 09:28:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mcusim.org; s=default; t=1711009731; bh=SPrGvowVD89sW31cM3jgHeYbin75EEPLarW6maRlMlY=; h=References:From:To:Cc:Subject:Date:In-reply-to; b=KmT7aUjjnbwGviMlDRMZcPJBmOnCJSxVw5/MmjbL9s2l4gpHHsUNDIiSh0QQPtee+ d8qTzv3jU6yJICVcLf5V90L3MPmfKAw+c25D2t5jDQy0aIzsvpzOCDI3uluGR5G3G2 RErWTW28+hpOpTwLL0pFX7hVxcFqnDbWiM5KtzC4= References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> <4a896a4e-cdb5-4351-ad29-8e014321f776@gmail.com> <876b9d58-6aba-460b-b972-0bd373936ca9@app.fastmail.com> <864jd0ul39.fsf@peasant.tower.home> <960f1b83-b169-4249-946c-c8f7f31595db@app.fastmail.com> <29B41DA7-1D72-4983-99F7-45D372CBCC48@FreeBSD.org> User-agent: mu4e 1.8.13; emacs 29.2 From: Dmitry Salychev To: Juraj Lutter Cc: freebsd-arm , Joseph Holsten , Dave Cottlehuber Subject: Re: free ARM VPS Date: Thu, 21 Mar 2024 09:27:55 +0100 In-reply-to: <29B41DA7-1D72-4983-99F7-45D372CBCC48@FreeBSD.org> Message-ID: <86v85gt2d9.fsf@peasant.tower.home> 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 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36236, ipnet:2a00:dd80:3c::/48, country:US] X-Rspamd-Queue-Id: 4V0dsR5bmZz4rfM Juraj Lutter writes: > Hi, > >> On 21 Mar 2024, at 08:25, Dave Cottlehuber wrote: >> It's a standard arm64 CPUs from Ampere (hw.model: ARM Neoverse-N1 r3p1) >> and quite capable of running anything. I run DBs (PostgreSQL, CouchDB), >> DNS services & Phoenix web apps off them, all in jails ofc. The free >> tier gives 4 CPU cores (no hyperthreading garbage!), 24GiB RAM, and >> IIRC up to 200GiB storage. That's plenty. >>=20 > > I can only second that. If you are interested, I can provide you a =E2=80= =9Ctest drive=E2=80=9D account on my box > to evaluate whether your own VM makes sense. > > otis > > > =E2=80=94 > Juraj Lutter > otis@FreeBSD.org Hi Juraj, I'd be glad to try it :) Regards, Dmitry --=20 https://wiki.freebsd.org/DmitrySalychev From nobody Fri Mar 22 00:34:30 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 4V13Hn6Pxtz5FBDS for ; Fri, 22 Mar 2024 00:34:45 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic315-55.consmr.mail.gq1.yahoo.com (sonic315-55.consmr.mail.gq1.yahoo.com [98.137.65.31]) (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 4V13Hl4Y3fz4vnk for ; Fri, 22 Mar 2024 00:34:43 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=mC6T0g0u; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.65.31 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711067681; bh=iLYWG2ZvoimYjH0Olva8QsVECL6yMZrW4x8SP2BqNck=; h=From:Subject:Date:Cc:To:References:From:Subject:Reply-To; b=mC6T0g0u2u8KVRYqT0pBQrxomgjVzIprD4jAeg+JDiEOJDUG2pwBz/FwVTphfar4MEZd9/gENiKlJ3ZMZhQjy5+cxOAkN2i7yn9iWnfrrxOcN2PEl6WtOOzb6nvFVOPkAZtxM4J0zYdTCGAfrL3IroLgoSBopw3AfDU5hgC0gBqsddk9aczbnyWdnerUU8m26+09cMTczjh/yFSsxw8BpMs7RjChk98tgxExweLdbwt00XhVI2YiV7VTQXotRBlQis8jQ4EtqfkTzl4CM9F3ra37DzGKarqlEqtKt0ISTU4LUBKanqDXNUv55GVxVvBYh0/kkJTu6E1ZlemO1ByPoQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711067681; bh=WEM5P7p/1MD/c70lna/+5UUQDkHnj9SeANUJRoTYQcs=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=mC3y/J7x7udQ3hFQ2BJyLiBlsicwyh1Obnfu5IwHd9zTzzxCXp33M1Um4xpT619UV7b+soilcAqibMcPedQTAKgQAW2QYXmOx0cjFaHRzGB5t0h3trM8ULf3jsrnOPC/R8tI6ozV7sbvRqmrYYupWh1x388GBHmGQvGYjeHNVkK7ioNUC70lANa37bl7AHQZBYII6HXpq+wRuLEimx+rrBWLboRmE7aoAtnbsHRjTX7m1X8zdYPheiSOt/i+Q+GA869Wl66/4LUMQgvlvJFaL70HraobrJQ6SHYgT5RRBROZTS5G9z8jOsLe4eYCTtRVmMMcPUXSnCkd0QMbiMb5Qw== X-YMail-OSG: LBPUFCkVM1kO8lzBGY_W5SliZihxXT2aIe3DvXEsqESAa69VVMxLVEo3LiEz_Kw Ydn_GtUveYUicm6nzsmfh7XHn.8UZQzPZe1vVldBkZkWXCXNBgv1cbF5PMnOW97MiN_m3_zF1mgj hIoGnQUlBxSJQR0KOW3dtR2wNk4hhq3UOITYC8jKxBGbdBM1RU1rYwsRBr4bRoMSyIV6KgccPZbk 6O0T8Rn4HpoFUjtD1VTqQSARPbSGXGUwzl.ectgOpqtm.vR3cdKCtoI4L3uCFlStr5xO44kPpKx1 tGTo9gERUNOM5QFZ3.xWifrFEapjfOtMxqCQlQLWVQF.qwV_v_x0b529QOfYkeL25w.zJgXI8efc Jml3ug3tQE_TLa8.MGSdvfJDgCuWWB1VqfjcN5Xot1Koq0oyyeZG0_gkdZpQQSFYTLp4QpMrOQs5 y4VHUYFQSJpEuWchROpV4pey5nh8Q60dLyAiJaeWaNtMpGKL168uE_PgmibxvhFBvrwyBgDwj.1_ YS_udTqyHIbhapK8hemJgeXC5WGk.wK3QZ2Ker.mho_i.4fdstSYBFegtSKADjd9F6KQjlEqpPIX Z8PTacl4mTvBDZeaJQ0EBAJbKeKw54CAwyYR1FDhZSx7G48Dr33_a21t_0fHDylqtf5ha4mxB4fa S00CXu1KAGt.yS8fvTxBvGP4wPqCXDihps.3t0lSJh0dO4ZJVvY8HumIm9i.5DPt6SdLr9g7NCRo TpTOGKaTrGT3N7HnP9vyk13h2sLHp1S.oiCEcm3BDFWzg7Cc_VJv.eci6iYOk3xnRpoZj4LOsQB0 w4lMp_I9Rzwo75o_mkRvitahl6GLAsDyPi_q.UfCnmEBOd6WhukrkVdV54xBVtDj6HzWMDBxzRxY zdwjPuAkgq916kocJk0BFZghwrfD83FXczayd8wBIYpfoPYZuvRbzlqicrrhFFJt_IwzdxEzHkzU YkkNoddYqDPckr73gdCBdwqrxjcwApBEbazqvtFKl30_d9nccmrwOn9nxK_Bs60BlRQWSXxa81GT L0c.j1TMxIFn8o7jFkikWYn4RO9r9tKOp8U4V5byFHCrV.u7Na4D.N3IwTAdoJGgCV9zaqftv_3i lfkSp9zuNAWHUQMFMoD24wPofJ5sRCPnTRwnMVKYzipokPQl.1DnNfsYveLSmRdCfEhp.w2wkj5A pncQObbLmMELPe5EZFlCE5vDnPS1CPeLWwiRLv3nuLPJRbNCpdKuHN7mi2upAHBSoiu2BgRhycpl 8n_duiLyEQeXqO_t5nKxpTKjyb1YI.cEHEp_in6av7SGWrWM00I3H56ElDXKgtFbU77IkfDz2nyk jNgn15_U0LN5FeQS5fMjfl4UhSE8YHg6LS7JlSX6NwdEEmcehjSYdbo0OPAfez3XTY_WF6Cn63Nk iI1xKgH2mYckFO5FV3MG0a9GWM4yg4McyVKE0KFcN6XNlDMHpzKlRS4ZYdQtNSDVdYasCj97xdT1 t5A1M95GtZKMEkvP31VkzyPvMn7WXXosRJRl47SJnyWu6B9fiHPzhF3c8vBWEOrC6oeQlLis4zfz PWtyzXjVTNw1IUfm3rBu.S_qV9z5_J94LCL4x.v3BT4JZtvH4AU3A5RvfmyJ5IhPY4MQUpY3RrCm 3o3dlhyv.QD1rimF8sIE7h2zhwEXTNIciWl8G56jCChrEhEDgkDn7bxdMhqpfDHc2QEFBbXSxgp8 49e94wO9k06UWB_Wwo0EmtMEVFMgyQ1bgijm1t6GDEI4qL17koFldkcb0WR_Lzpzd7S0IYn116uH LdJBE6jFEt1IcxMjE7GFReLdwi9A5nDdit4GSy6uCaeoRME2KW6.PD5IukKQcuhqd47.GG42nUHk gFna8dgnsT4TFUPkmvU.bwvSc.VAkSj0OXkB9TxukVhCF0fb7xvq3sj8f09dJNttrdRPnsURCoqe VUVsAsN3GIsTLUh99YzbS9kzc74mtaS9YYtQ76UnKYtLBbdN7CVePtT1Zz_srG9inOMRXg5pcU_N dZhbzRdn46J_eUjEUPUybiUdtnDElloobXYgTI8xX_SvLbhxGNu07WnP78QAqhCnK699VAFN8XS. 5cTBUxX6GP2wapQ8uJrBFiBSOCkwwtY45xBv9wCihcG6w0TfzbIjEiRZnVT4P7KVd3NDgOdaB2aO B3NzWwuLzyZ2RyU1CWxBHd5qwWz_mQRj9DItvwhjzvBE8uCHh.6WPg_xdcxdPLwhnBtH_WEvmfvu qREaGwQRueIHzwWZF17Ra_FHYyyyMRk8SQ8Dz.5XWLWp0DCRYPFC7QyXSJS3dbJ05xIK_89l.teu 7 X-Sonic-MF: X-Sonic-ID: a765e4d7-d6c9-4cc9-8e6f-51fdcd32e5ac Received: from sonic.gate.mail.ne1.yahoo.com by sonic315.consmr.mail.gq1.yahoo.com with HTTP; Fri, 22 Mar 2024 00:34:41 +0000 Received: by hermes--production-gq1-5c57879fdf-bmngc (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 27290ee8c32ec341c97ed35d6a69c07e; Fri, 22 Mar 2024 00:34:41 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable 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: main aarch64: poudriere-devel [UFS context] cpdup stuck in pgnslp state Message-Id: Date: Thu, 21 Mar 2024 17:34:30 -0700 Cc: FreeBSD Mailing List To: Current FreeBSD , FreeBSD ARM List X-Mailer: Apple Mail (2.3774.400.31) References: 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.997]; 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.65.31:from]; RCVD_IN_DNSWL_NONE(0.00)[98.137.65.31:from] X-Rspamd-Queue-Id: 4V13Hl4Y3fz4vnk Note, more recent process creations towards top, older ones towards = bottom: PID JID USERNAME PRI NICE SIZE RES STATE C TIME = CPU COMMAND . . . 33693 19 root 68 0 6524Ki 3252Ki wait 3 0:00 = 0.00% /usr/bin/make -C /usr/ports/lang/gcc13 build 33692 0 root 68 0 15728Ki 3552Ki wait 0 0:00 = 0.00% sh: poudriere[main-CA7-default][02]: build_pkg (gcc13-13.2.0_4) = (sh) 30174 0 root 68 0 15728Ki 3564Ki select 3 0:00 = 0.00% sh: poudriere[main-CA7-default][02]: build_pkg (gcc13-13.2.0_4) = (sh) 26338 0 root 66 0 17740Ki 5044Ki pgnslp 0 0:01 = 0.00% cpdup -i0 -s0 -f -x ref 01 26308 0 root 68 0 15728Ki 3556Ki wait 0 0:00 = 0.00% sh: poudriere[main-CA7-default][01]: build_pkg (boost-libs-1.84.0) = (sh) 33592 0 root 26 0 15728Ki 3388Ki piperd 2 0:01 = 0.00% sh: poudriere[main-CA7-default]: pkg_cacher_main (sh) 29205 0 root 68 0 15728Ki 3392Ki nanslp 2 1:52 = 0.14% sh: poudriere[main-CA7-default]: html_json_main (sh) 28834 0 root 20 0 15728Ki 3548Ki select 3 0:01 = 0.00% /usr/local/libexec/poudriere/sh -e = /usr/local/share/poudriere/bulk.sh -jmain-CA7 -c -f = /root/origins/CA7-origins.txt 28833 0 root 20 0 13560Ki 1924Ki wait 3 0:00 = 0.00% /bin/sh /root/build-ports-main-CA7.sh -c . . . pgnslp seems to be from: vm_page_acquire_unlocked in sys/vm/vm_page.c . That in turn looks to be using vm_page_grab_sleep : if (!vm_page_grab_sleep(object, m, pindex, "pgnslp", allocflags, false)) return (false); and: /* * vm_page_grab_sleep * * Sleep for busy according to VM_ALLOC_ parameters. Returns true * if the caller should retry and false otherwise. * * If the object is locked on entry the object will be unlocked = with * false returns and still locked but possibly having been dropped * with true returns. */ static bool vm_page_grab_sleep(vm_object_t object, vm_page_t m, vm_pindex_t pindex, const char *wmesg, int allocflags, bool locked) { =20 if ((allocflags & VM_ALLOC_NOWAIT) !=3D 0) return (false); =20 /* * Reference the page before unlocking and sleeping so that * the page daemon is less likely to reclaim it. */ if (locked && (allocflags & VM_ALLOC_NOCREAT) =3D=3D 0) vm_page_reference(m); =20 if (_vm_page_busy_sleep(object, m, pindex, wmesg, allocflags, = locked) && locked) VM_OBJECT_WLOCK(object); if ((allocflags & VM_ALLOC_WAITFAIL) !=3D 0) return (false); return (true); } . . . [10:08:06] [01] [00:00:00] Building devel/boost-libs | boost-libs-1.84.0 . . . # poudriere status -b [main-CA7-default] [2024-03-21_06h23m31s] [parallel_build] Queued: 265 = Built: 213 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: = 52 Time: 10:50:40 ID TOTAL ORIGIN PKGNAME = PHASE TIME TMPFS CPU% MEM% [01] 00:42:40 devel/boost-libs | boost-libs-1.84.0 = starting 00:42:40 951.54 MiB =20 . . . Unfortunately: A) The booted kernel is my personal build based on -mcpu=3Dcortex-a76 and LSE_ATOMICS . (It is in use on a RPi5 booted via EDK2.) B) The booted world is a PkgBase world. C) The poudriere jail's world directory tree is my personal armv7 world build based on -mcpu=3Dcortex-a7 . All are based on: main-n268827-75464941dc17 . (Well, PkgBase commit identification/verification for world does not exist. I happened to update PkgBase during a long lull for commits to main. In the context, the boot-world seems unlikely to be involved here.) The boot media is a U2 Optane 960 GB used via a USB3 adaptor. I've done bunches of builds in the (A)-(C) context on the RPi5 and have not seen this before, so: does not look to be readily repeatable. (Unfortunately, the purpose of the build was to find out how long the particular build configuration took to finish building the 265 packages from scratch, for comparison to other builds.) I may wait for the system to become fairly idle and then see about forcing a crash dump. It may be a while before the poudriere bulk runs out of packages it can build, absent building boost-libs . Side note: As far as I can tell, how to identify a context that allows identification of what commit vintage a PkgBase world is based on is unspecified so far. For a PkgBase kernel uname -apKU may well report the kernel-commit identification well. (Hard to verify.) =3D=3D=3D Mark Millard marklmi at yahoo.com 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 From nobody Fri Mar 22 16:48:39 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 4V1Svc4rkBz5FKYK for ; Fri, 22 Mar 2024 16:48:44 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from drew.franken.de (mail-n.franken.de [193.175.24.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.franken.de", Issuer "Sectigo RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V1Svb6DfXz4dCL for ; Fri, 22 Mar 2024 16:48:43 +0000 (UTC) (envelope-from tuexen@freebsd.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=freebsd.org (policy=none); spf=softfail (mx1.freebsd.org: 193.175.24.27 is neither permitted nor denied by domain of tuexen@freebsd.org) smtp.mailfrom=tuexen@freebsd.org Received: from smtpclient.apple (unknown [IPv6:2a02:8109:1140:c3d:94fd:3fb3:cd11:61ea]) (Authenticated sender: micmac) by drew.franken.de (Postfix) with ESMTPSA id 2CFFB721E2806 for ; Fri, 22 Mar 2024 17:48:40 +0100 (CET) From: tuexen@freebsd.org Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable 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.500.171.1.1\)) Subject: Errors reported when booting an Ampere Altra system Message-Id: Date: Fri, 22 Mar 2024 17:48:39 +0100 To: freebsd-arm X-Mailer: Apple Mail (2.3774.500.171.1.1) X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=disabled version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail-n.franken.de X-Spamd-Bar: / X-Spamd-Result: default: False [-0.96 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.991]; NEURAL_HAM_LONG(-0.98)[-0.979]; NEURAL_SPAM_SHORT(0.61)[0.613]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[193.175.24.27:from]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : No valid SPF, No valid DKIM,none]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:680, ipnet:193.174.0.0/15, country:DE]; FROM_NO_DN(0.00)[]; TO_DOM_EQ_FROM_DOM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEFALL_USER(0.00)[tuexen]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; R_SPF_SOFTFAIL(0.00)[~all]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; ARC_NA(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-arm@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Rspamd-Queue-Id: 4V1Svb6DfXz4dCL Dear all, when booting an Ampere Altra with an up to date main branch of FreeBSD I get: SRAT: Ignoring memory at addr 0x88300000 VT(efifb): resolution 800x600 module scmi already present! real memory =3D 137167360000 (130812 MB) avail memory =3D 133517766656 (127332 MB) Starting CPU 1 (120100) Starting CPU 2 (140000) Starting CPU 3 (140100) Starting CPU 4 (1a0000) Starting CPU 5 (1a0100) Starting CPU 6 (1c0000) Starting CPU 7 (1c0100) Starting CPU 8 (100000) Starting CPU 9 (100100) Starting CPU 10 (160000) Starting CPU 11 (160100) Starting CPU 12 (180000) Starting CPU 13 (180100) Starting CPU 14 (1e0000) Starting CPU 15 (1e0100) Starting CPU 16 (a0000) Starting CPU 17 (a0100) Starting CPU 18 (c0000) Starting CPU 19 (c0100) Starting CPU 20 (220000) Starting CPU 21 (220100) Starting CPU 22 (240000) Starting CPU 23 (240100) Starting CPU 24 (80000) Starting CPU 25 (80100) Starting CPU 26 (e0000) Starting CPU 27 (e0100) Starting CPU 28 (200000) Starting CPU 29 (200100) Starting CPU 30 (260000) Starting CPU 31 (260100) Starting CPU 32 (20000) Starting CPU 33 (20100) Starting CPU 34 (40000) Starting CPU 35 (40100) Starting CPU 36 (2a0000) Starting CPU 37 (2a0100) Starting CPU 38 (2c0000) Starting CPU 39 (2c0100) Starting CPU 40 (0) Starting CPU 41 (100) Starting CPU 42 (60000) Starting CPU 43 (60100) Starting CPU 44 (280000) Starting CPU 45 (280100) Starting CPU 46 (2e0000) Starting CPU 47 (2e0100) Starting CPU 48 (320000) Starting CPU 49 (320100) Starting CPU 50 (340000) Starting CPU 51 (340100) Starting CPU 52 (300000) Starting CPU 53 (300100) Starting CPU 54 (360000) Starting CPU 55 (360100) Starting CPU 56 (3a0000) Starting CPU 57 (3a0100) Starting CPU 58 (3c0000) Starting CPU 59 (3c0100) Starting CPU 60 (380000) Starting CPU 61 (380100) Starting CPU 62 (3e0000) Starting CPU 63 (3e0100) Starting CPU 64 (130000) Starting CPU 65 (130100) Starting CPU 66 (150000) Starting CPU 67 (150100) Starting CPU 68 (1b0000) Starting CPU 69 (1b0100) Starting CPU 70 (1d0000) Starting CPU 71 (1d0100) Starting CPU 72 (110000) Starting CPU 73 (110100) Starting CPU 74 (170000) Starting CPU 75 (170100) Starting CPU 76 (190000) Starting CPU 77 (190100) Starting CPU 78 (1f0000) Starting CPU 79 (1f0100) Starting CPU 80 (b0000) Starting CPU 81 (b0100) Starting CPU 82 (d0000) Starting CPU 83 (d0100) Starting CPU 84 (230000) Starting CPU 85 (230100) Starting CPU 86 (250000) Starting CPU 87 (250100) Starting CPU 88 (90000) Starting CPU 89 (90100) Starting CPU 90 (f0000) Starting CPU 91 (f0100) Starting CPU 92 (210000) Starting CPU 93 (210100) Starting CPU 94 (270000) Starting CPU 95 (270100) Starting CPU 96 (30000) Starting CPU 97 (30100) Starting CPU 98 (50000) Starting CPU 99 (50100) Starting CPU 100 (2b0000) Starting CPU 101 (2b0100) Starting CPU 102 (2d0000) Starting CPU 103 (2d0100) Starting CPU 104 (10000) Starting CPU 105 (10100) Starting CPU 106 (70000) Starting CPU 107 (70100) Starting CPU 108 (290000) Starting CPU 109 (290100) Starting CPU 110 (2f0000) Starting CPU 111 (2f0100) Starting CPU 112 (330000) Starting CPU 113 (330100) Starting CPU 114 (350000) Starting CPU 115 (350100) Starting CPU 116 (310000) Starting CPU 117 (310100) Starting CPU 118 (370000) Starting CPU 119 (370100) Starting CPU 120 (3b0000) Starting CPU 121 (3b0100) Starting CPU 122 (3d0000) Starting CPU 123 (3d0100) Starting CPU 124 (390000) Starting CPU 125 (390100) Starting CPU 126 (3f0000) Starting CPU 127 (3f0100) FreeBSD/SMP: Multiprocessor System Detected: 128 CPUs random: unblocking device. random: entropy device external interface ERROR: Multiple Proximity Domains map to the same NUMA domain 0! ERROR: Multiple Proximity Domains map to the same NUMA domain 0! ERROR: Multiple Proximity Domains map to the same NUMA domain 0! ERROR: Multiple Proximity Domains map to the same NUMA domain 0! ERROR: Multiple Proximity Domains map to the same NUMA domain 0! ERROR: Multiple Proximity Domains map to the same NUMA domain 0! ERROR: Multiple Proximity Domains map to the same NUMA domain 0! kbd0 at kbdmux0 acpi0: acpi0: Sleep Button (fixed) acpi0: Could not update all GPEs: AE_NOT_CONFIGURED psci0: on acpi0 gic0: iomem = 0x100100000000-0x10010000ffff,0x100100140000-0x10010113ffff on acpi0 its0: mem = 0x100100040000-0x10010005ffff on gic0 its1: mem = 0x100100060000-0x10010007ffff on gic0 its2: mem = 0x100100080000-0x10010009ffff on gic0 its3: mem = 0x1001000a0000-0x1001000bffff on gic0 its4: mem = 0x1001000c0000-0x1001000dffff on gic0 its5: mem = 0x1001000e0000-0x1001000fffff on gic0 its6: mem = 0x100100100000-0x10010011ffff on gic0 its7: mem = 0x100100120000-0x10010013ffff on gic0 generic_timer0: irq 83,84,85 on acpi0 I cannot say if this is new or not. But I'm wondering if the ERROR = message is an indication of a problem. Any ideas? Best regards Michael= From nobody Fri Mar 22 17:51:29 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 4V1VJL45kcz5FRf5 for ; Fri, 22 Mar 2024 17:51:46 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic309-21.consmr.mail.gq1.yahoo.com (sonic309-21.consmr.mail.gq1.yahoo.com [98.137.65.147]) (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 4V1VJJ22JGz4kcQ for ; Fri, 22 Mar 2024 17:51:44 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=c6bhlj++; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.65.147 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711129901; bh=1aWIJMa/oLOp7vAv1pevWgqYQBkFI5nZ0N+DZRPZEMw=; h=From:Subject:Date:References:To:In-Reply-To:From:Subject:Reply-To; b=c6bhlj++IRbgEsIgP//lC2rwgyQJ/fCqTSShau0Qep8c5rToBcwenlNF9yGXvtBehdqitouSRWSrDJj9BoxZQ1BtaOcFNCBqRNQMQ7JsU36Uy0ou9N5+1PBxuHfkUwbSbRd3lyX0DGe4ow1JHmERiirZgSsyNWRoyxWETj+W8uUXxupVcdVuQmhcBqmPlJ6lx0yetT35WBnaWg8L5XLOYz+G1MUR5gE00MS+Vmwug8n7GSxXA+VzUPa2I85gYpWjyc+iDB0GmWZZGf4fWYUnq9vOtsPxrvOvEd4MPoJqPhjjSQgwnxsyO+2ge5BYcOED5K4FCeLhxHjo5k8S8iHicQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711129901; bh=KrzxLO5WClMXwr/9eeiXQowZYFyVS59/BypP7QyZkZE=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=jn+0x5qsXqB3C/xkecfEPk41RduraRBzWvbh0IjZWzn8RolXRfVfvpr+xAVXBqHECyAD6cye1Zd0YME5yu4jBQrcbmzpHSBCPS/dJGEhAHtbKIsjrCd3CHDvwQgPrXtRjjmvkR/hLZaCakG9z64HfCx2CNq1rjxWtme/x09epStVYMR7rDt00Hc7D9PghAwAZOjhazost1bsMTpG/N84MROTE2RwhFYvz0FkPch3Z1TToZXnaFM0Jm9KJ935YbRkE3t85RVcYP1NiJFl1tD8tIVq3CZ5tnalfqDuxs1cupq1fyW2P1974M2ASmWwx0obXiMD16pwMWdsyAuokq5TTw== X-YMail-OSG: 6q8XTFQVM1k9VDGiiUXORstDeGxkF1Y98M8Q.AxRyrcoAIm9y8wsucGb.9REsJ0 bnDW69EuUfDPWqy3xTLf0ePCOtMHwCcs7MjuBkv2oBuKWnufv7T3JFC.5OxlJ1.fMGlztibHIukJ .xiB0dUm32MOfW8DsRBH_.Dr7SCDWCrrj5yStNT8tkrS7w2RGCsrg45dJOO.3_TWRYQpshwGyVQ1 3BU3RJdxDixsQ.0TE6hL5WF28otEfCWPIjTKw2p8ECJCKBPFtCwLJZVQ7P8seud4avxoOsU4wed6 Qaa9jiq0Wa37GvDvSAeYG3WxGJpWV7LAxNVePtTWY59GLpkq2BN7HXkCWJiawqtTghJn05pN8i1T c2kTdBLVaCZFckXV5gC2TE51NSsMXsmX0BwjRu.Og.Qr05uLlVogEBGXSybSlbR48tJovchPf7r9 gA3E1B9BtGi2j8zSi2XmLt4IcrUCbFbee9g.beGwHlCmUSkC5TDnxZyfy8TwTzRdmKhtCqqvpy3X WVGXApTUbWIt.NR3YqQ9zl.cp_eiOxZSChw4QKNbO_lYgzPRaCyIY_JDF4LEMTzxxeWNv_dz9LIm LFzUodlXJXifaCl1ZVPD_NBSFnLq8BgBaA_Y.6nE_vwx9e0zXG_WQhrtnMt.JD5E8ceTMbBs5SK_ Bor0jiLWRC9gPYp60sTKn7r3sFdIzZaBLnQb7f7cwsBiZHTE6d07XT_wLLFvKzzzWe3qCPQ.08fy fI537VgUSa.vp0jUM2RTwz68_dUMmTyo910OuR7HE8HR10acYRZiPHyENk0mjDKV.BspeCIoMWpW XdwH2K1Twbk0LI4Gbz0e9vsBIUs_ULxEOVNtbYM6.86M1PLB.AS5R4KCMTtzAQt2hPXzEoFVFUyT oCc36euXOlLQT9SHGlWJ_PBV1FPbox0QbRqCicamAUKBBNm3LiEhpRARsTlasrfHWTXL6MeF34fn zlJ8FvUxd0O9efRpbilvhqHFqK_7CmvgEkEkilWNtzXVCX9haP7sNmoDmZrvCX_4RWB7h0Or8kmq xQK6SdiUs0aENbEd9tvp36FffGpVShCMHIN2MBEWzc7yo.987iUmI593r8uxxK4YQKdqsOaMUYnT 1009dHu4aO.ZAghp6fff5mDEJRA30fAPOMHI4tlNxhAIUGR3QTnH696oKPScw53pH9e0H9Nt2KC9 KEIRx_0kFJF1lp0P7uFDgwUab3YbcsLqkARNIpv0PPPybHxp4wVTsmzt60ywLOTpN8yb6VPD8HQL FoBwgYUl6nQFWb4NHDKyRuQxjM5XJfSvBDvT2LfnoXdCJJm0RFZ2tuQ0TICrs6PvRuA0l1oapR4J Qezvsk6eYZhd2Z8gdyPVELtd06IxvzEP_WzlD9QWEIwjD..BlavD5jRRSbENm6STY_uYFs.1sx4A mMq.tCxq7x7gvUtpP79xVnU9wWPbAR3jsT8PpVH9a6P._p4GANahvdEeVko1LkmtoZ9PBTkA8S7v adqVousdUXlVFEjQ1PYvgJtEtU0lfobvUK1KY.Mot3bbmgfqTnuSRfP6LpAm_fmC8dKRwPH3ESlQ 2db.1NSb7CbWUXbcf_Mp4.VjGjtxS4VMsw5enPtNDfkUBPcArZN21z3FyYbkmT4LF_fcP3LNC49V zgSa0jeZReD5TxgGQCEMOisQbEH98pMLBes18SP4uyf3sZXtc7QGyFvjEZtqhjoZwUOYXK1tCbmF bIWE8UnG1_o5L9izNZu.u_OfPyc2D10TgieK0THxD_6oaiBzYK426Qgw83woMThdx_RY1sVF.VZq lFJRjr2yvR8bDj26AKW1LCB80qqTWryPHr8Bii7Zc30rk5lGIMcTNQGpYu2XSgBPtOx7TyJ67lLU Iic9OhhM6HilTxOCCXRCtlvhbt0_BMA0NjugnJNv92WznaJuLUth3iQTmqVSnnqOqwtZZObVODE5 WftSTs6FiUAM4cgBCF4ZtP3.nodwlsPfs4La0PtmRohc8KVNTpZ4hPPJtW1OFO.avHaj6Nrg0kil F_y_u5f7_im7zYfZmx.MPdHDqrNriTpJ0T2KokQHwj9RWIQgY8tvnh5ZtKD_lKKaC7E5EjC3p1zG kNGKdFqnBWInev1tKK4CXWHS4yia0BsHB9P55o12vh8CH.9XUIoDqYv.YkRYw5R5BaruiudqrVNE D6tziRjPe0PbxRdFiZ36pT8gQJDtwOBWo_B4NJgrS.tAKfJRiFJ9J8Vo3F6lJZqirXXP7rk1GSPn FQaEXAvg4WlTZ9jEoCwzQKG9oPLY8aDm.sGKEP05cG08Ytf5gru0Wp1XKv6T_Y1ZwieZqWZpQSUo - X-Sonic-MF: X-Sonic-ID: cd50f23f-2f10-456e-bb91-95607f1b228c Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.gq1.yahoo.com with HTTP; Fri, 22 Mar 2024 17:51:41 +0000 Received: by hermes--production-gq1-5c57879fdf-7xbd4 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 1dc08150cd34a0f1c37357c36ebc178f; Fri, 22 Mar 2024 17:51:40 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable 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: main aarch64: poudriere-devel [UFS context] cpdup stuck in pgnslp state [any more useful information to extract via kgdb?] Date: Fri, 22 Mar 2024 10:51:29 -0700 References: To: freebsd-hackers , FreeBSD ARM List In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3774.400.31) X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.99)[-0.993]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; TO_DN_ALL(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; RCPT_COUNT_TWO(0.00)[2]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; FREEMAIL_FROM(0.00)[yahoo.com]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCVD_IN_DNSWL_NONE(0.00)[98.137.65.147:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.65.147:from]; SUBJECT_HAS_QUESTION(0.00)[] X-Rspamd-Queue-Id: 4V1VJJ22JGz4kcQ [Adding some information from kgdb. Switch to freebsd-hackers and (still) freebsd-arm. I also ask if there is more useful information to extract via kgdb.] On Mar 21, 2024, at 17:34, Mark Millard wrote: > Note, more recent process creations towards top, older ones towards = bottom: >=20 > PID JID USERNAME PRI NICE SIZE RES STATE C TIME = CPU COMMAND > . . . > 33693 19 root 68 0 6524Ki 3252Ki wait 3 0:00 = 0.00% /usr/bin/make -C /usr/ports/lang/gcc13 build > 33692 0 root 68 0 15728Ki 3552Ki wait 0 0:00 = 0.00% sh: poudriere[main-CA7-default][02]: build_pkg (gcc13-13.2.0_4) = (sh) > 30174 0 root 68 0 15728Ki 3564Ki select 3 0:00 = 0.00% sh: poudriere[main-CA7-default][02]: build_pkg (gcc13-13.2.0_4) = (sh) > 26338 0 root 66 0 17740Ki 5044Ki pgnslp 0 0:01 = 0.00% cpdup -i0 -s0 -f -x ref 01 > 26308 0 root 68 0 15728Ki 3556Ki wait 0 0:00 = 0.00% sh: poudriere[main-CA7-default][01]: build_pkg = (boost-libs-1.84.0) (sh) > 33592 0 root 26 0 15728Ki 3388Ki piperd 2 0:01 = 0.00% sh: poudriere[main-CA7-default]: pkg_cacher_main (sh) > 29205 0 root 68 0 15728Ki 3392Ki nanslp 2 1:52 = 0.14% sh: poudriere[main-CA7-default]: html_json_main (sh) > 28834 0 root 20 0 15728Ki 3548Ki select 3 0:01 = 0.00% /usr/local/libexec/poudriere/sh -e = /usr/local/share/poudriere/bulk.sh -jmain-CA7 -c -f = /root/origins/CA7-origins.txt > 28833 0 root 20 0 13560Ki 1924Ki wait 3 0:00 = 0.00% /bin/sh /root/build-ports-main-CA7.sh -c > . . . >=20 > pgnslp seems to be from: vm_page_acquire_unlocked in sys/vm/vm_page.c = . > That in turn looks to be using vm_page_grab_sleep : >=20 > if (!vm_page_grab_sleep(object, m, pindex, "pgnslp", > allocflags, false)) > return (false); >=20 > and: >=20 > /* > * vm_page_grab_sleep > * > * Sleep for busy according to VM_ALLOC_ parameters. Returns true > * if the caller should retry and false otherwise. > * > * If the object is locked on entry the object will be unlocked = with > * false returns and still locked but possibly having been dropped > * with true returns. > */ > static bool > vm_page_grab_sleep(vm_object_t object, vm_page_t m, vm_pindex_t = pindex, > const char *wmesg, int allocflags, bool locked) > { >=20 > if ((allocflags & VM_ALLOC_NOWAIT) !=3D 0) > return (false); >=20 > /* > * Reference the page before unlocking and sleeping so that > * the page daemon is less likely to reclaim it. > */ > if (locked && (allocflags & VM_ALLOC_NOCREAT) =3D=3D 0) > vm_page_reference(m); >=20 > if (_vm_page_busy_sleep(object, m, pindex, wmesg, allocflags, = locked) && > locked) > VM_OBJECT_WLOCK(object); > if ((allocflags & VM_ALLOC_WAITFAIL) !=3D 0) > return (false); >=20 > return (true); > } >=20 > . . . > [10:08:06] [01] [00:00:00] Building devel/boost-libs | = boost-libs-1.84.0 > . . . >=20 > # poudriere status -b > [main-CA7-default] [2024-03-21_06h23m31s] [parallel_build] Queued: 265 = Built: 213 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: = 52 Time: 10:50:40 > ID TOTAL ORIGIN PKGNAME = PHASE TIME TMPFS CPU% MEM% > [01] 00:42:40 devel/boost-libs | boost-libs-1.84.0 = starting 00:42:40 951.54 MiB =20 > . . . >=20 > Unfortunately: >=20 > A) The booted kernel is my personal build based on -mcpu=3Dcortex-a76 > and LSE_ATOMICS . (It is in use on a RPi5 booted via EDK2.) >=20 > B) The booted world is a PkgBase world. >=20 > C) The poudriere jail's world directory tree is my personal armv7 > world build based on -mcpu=3Dcortex-a7 . >=20 > All are based on: main-n268827-75464941dc17 . (Well, PkgBase > commit identification/verification for world does not exist. > I happened to update PkgBase during a long lull for commits > to main. In the context, the boot-world seems unlikely to be > involved here.) >=20 > The boot media is a U2 Optane 960 GB used via a USB3 adaptor. >=20 > I've done bunches of builds in the (A)-(C) context on the RPi5 > and have not seen this before, so: does not look to be readily > repeatable. >=20 > (Unfortunately, the purpose of the build was to find out how long > the particular build configuration took to finish building the > 265 packages from scratch, for comparison to other builds.) >=20 > I may wait for the system to become fairly idle and then see about > forcing a crash dump. It may be a while before the poudriere bulk > runs out of packages it can build, absent building boost-libs . >=20 >=20 > Side note: > As far as I can tell, how to identify a context that allows > identification of what commit vintage a PkgBase world is based on > is unspecified so far. For a PkgBase kernel uname -apKU may well > report the kernel-commit identification well. (Hard to verify.) The cpdup kernel thread backtrace follows. The kernel build was NODEBUG and optimatized, but with debug information still produced. This can lead to somewhat messy information but is better than not having the information. (kgdb) thread 145 [Switching to thread 145 (Thread 361925)] #0 sched_switch (td=3Dtd@entry=3D0xffff0000dfaf8c80, = flags=3Dflags@entry=3D259) at /usr/main-src/sys/kern/sched_ule.c:2290 2290 cpuid =3D td->td_oncpu =3D PCPU_GET(cpuid); (kgdb) bt #0 sched_switch (td=3Dtd@entry=3D0xffff0000dfaf8c80, = flags=3Dflags@entry=3D259) at /usr/main-src/sys/kern/sched_ule.c:2290 #1 0xffff0000004f5f2c in mi_switch (flags=3Dflags@entry=3D259) at = /usr/main-src/sys/kern/kern_synch.c:546 #2 0xffff00000054ea28 in sleepq_switch (wchan=3D, = pri=3D) at /usr/main-src/sys/kern/subr_sleepqueue.c:607 #3 0xffff00000054e8f8 in sleepq_wait (wchan=3D, = wchan@entry=3D0xffffa001fae26630, pri=3D, pri@entry=3D52) = at /usr/main-src/sys/kern/subr_sleepqueue.c:658 #4 0xffff00000084e768 in _vm_page_busy_sleep (obj=3D, = obj@entry=3D0xffffa0012aab9528, m=3Dm@entry=3D0xffffa001fae26630, = pindex=3Dpindex@entry=3D0, wmesg=3D0xffff0000009c6297 "pgnslp", = allocflags=3Dallocflags@entry=3D21504, locked=3D) at = /usr/main-src/sys/vm/vm_page.c:1100 #5 0xffff0000008548e4 in vm_page_grab_sleep (object=3D0xffffa0012aab9528,= m=3D0xffffa001fae26630, pindex=3D0, allocflags=3D21504, locked=3Dfalse, = wmesg=3D) at /usr/main-src/sys/vm/vm_page.c:4547 #6 vm_page_acquire_unlocked (object=3Dobject@entry=3D0xffffa0012aab9528, = pindex=3Dpindex@entry=3D0, prev=3D, = prev@entry=3D0xffff0000e04c5570, mp=3Dmp@entry=3D0xffff0000e04c55b8, = allocflags=3D21504) at /usr/main-src/sys/vm/vm_page.c:4690 #7 0xffff0000008552c4 in vm_page_grab_valid_unlocked = (mp=3Dmp@entry=3D0xffff0000e04c55b8, = object=3Dobject@entry=3D0xffffa0012aab9528, pindex=3Dpindex@entry=3D0, = allocflags=3Dallocflags@entry=3D21504) at /usr/main-src/sys/vm/vm_page.c:4871 #8 0xffff0000005949e8 in uiomove_object_page (obj=3D0xffffa0012aab9528, = len=3D, uio=3D0xffff0000e04c57d8) at = /usr/main-src/sys/kern/uipc_shm.c:207 #9 uiomove_object (obj=3D0xffffa0012aab9528, obj@entry=3D, obj_size=3D29352, = obj_size@entry=3D, = uio=3D0xffff0000e04c57d8, uio@entry=3D) at /usr/main-src/sys/kern/uipc_shm.c:268 #10 0xffff0000009b8a54 in VOP_READ_APV (vop=3D0xffff000000c8c038 = , a=3Da@entry=3D0xffff0000e04c5658) at = vnode_if.c:1048 #11 0xffff0000005fd630 in VOP_READ (vp=3D0xffffa00129280540, = uio=3D0xffff0000e04c57d8, ioflag=3D327680, cred=3D) at = ./vnode_if.h:537 #12 vn_read (fp=3Dfp@entry=3D0xffffa0007492bdc0, = uio=3Duio@entry=3D0xffff0000e04c57d8, = active_cred=3Dactive_cred@entry=3D0xffffa0010ab5f400, flags=3D, td=3D) at /usr/main-src/sys/kern/vfs_vnops.c:1123 #13 0xffff0000005f5598 in vn_io_fault (fp=3D0xffffa0007492bdc0, = fp@entry=3D, = uio=3D0xffff0000e04c57d8, uio@entry=3D, active_cred=3D0xffffa0010ab5f400, = active_cred@entry=3D, = flags=3D0, flags@entry=3D, td=3D0xffff0000dfaf8c80, td@entry=3D) at /usr/main-src/sys/kern/vfs_vnops.c:1504 #14 0xffff000000562ed4 in fo_read (fp=3D0xffffa0007492bdc0, = uio=3D0xffff0000e04c57d8, active_cred=3D, flags=3D0, = td=3D0xffff0000dfaf8c80) at /usr/main-src/sys/sys/file.h:344 #15 dofileread (td=3Dtd@entry=3D0xffff0000dfaf8c80, fd=3Dfd@entry=3D3, = fp=3D0xffffa0007492bdc0, auio=3Dauio@entry=3D0xffff0000e04c57d8, = offset=3D, flags=3D0, flags@entry=3D-531867712) at /usr/main-src/sys/kern/sys_generic.c:366 #16 0xffff000000562a00 in kern_readv (td=3D0xffff0000dfaf8c80, fd=3D3, = auio=3D0xffff0000e04c57d8) at /usr/main-src/sys/kern/sys_generic.c:287 #17 sys_read (td=3D0xffff0000dfaf8c80, td@entry=3D, uap=3D, uap@entry=3D) at /usr/main-src/sys/kern/sys_generic.c:203 #18 0xffff00000089f9b4 in syscallenter (td=3D0xffff0000dfaf8c80) at = /usr/main-src/sys/arm64/arm64/../../kern/subr_syscall.c:186 #19 svc_handler (td=3D0xffff0000dfaf8c80, frame=3D) at = /usr/main-src/sys/arm64/arm64/trap.c:198 #20 do_el0_sync (td=3D0xffff0000dfaf8c80, frame=3D) at = /usr/main-src/sys/arm64/arm64/trap.c:640 #21 #22 0x00000000271dd394 in ?? () #23 0x0000000026e3071c in ?? () Backtrace stopped: previous frame identical to this frame (corrupt = stack?) (kgdb) frame 4 #4 0xffff00000084e768 in _vm_page_busy_sleep (obj=3D, = obj@entry=3D0xffffa0012aab9528, m=3Dm@entry=3D0xffffa001fae26630, = pindex=3Dpindex@entry=3D0, wmesg=3D0xffff0000009c6297 "pgnslp", = allocflags=3Dallocflags@entry=3D21504, locked=3D) at = /usr/main-src/sys/vm/vm_page.c:1100 1100 sleepq_wait(m, PVM); FYI: . . . } while (!atomic_fcmpset_int(&m->busy_lock, &x, x | = VPB_BIT_WAITERS)); if (locked) VM_OBJECT_DROP(obj); DROP_GIANT(); sleepq_add(m, NULL, wmesg, 0, 0); sleepq_wait(m, PVM); PICKUP_GIANT(); return (true); } . . . (kgdb) print /x *m $2 =3D {plinks =3D {q =3D {tqe_next =3D 0xffffa001fc7c31c0, tqe_prev =3D = 0xffffa001ff85d2d0}, s =3D {ss =3D {sle_next =3D 0xffffa001fc7c31c0}}, = memguard =3D {p =3D 0xffffa001fc7c31c0, v =3D 0xffffa001ff85d2d0}, uma =3D= { slab =3D 0xffffa001fc7c31c0, zone =3D 0xffffa001ff85d2d0}}, listq = =3D {tqe_next =3D 0xffffa001ff85d2d0, tqe_prev =3D 0xffffa0012aab9570}, = object =3D 0xffffa0012aab9528, pindex =3D 0x0, phys_addr =3D = 0x12a816000, md =3D {pv_list =3D {tqh_first =3D 0x0, tqh_last =3D = 0xffffa001fae26668}, pv_gen =3D 0x15fd, pv_memattr =3D 0x2}, ref_count =3D= 0x80000000, busy_lock =3D 0x1, a =3D {{flags =3D 0x208, queue =3D = 0x1, act_count =3D 0x1}, _bits =3D 0x1010208}, order =3D 0xd, pool =3D = 0x0, flags =3D 0x1, oflags =3D 0x0, psind =3D 0x0, segind =3D 0x8, valid = =3D 0xff, dirty =3D 0x0} Any more potentially useful information to extract via kgdb? =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Fri Mar 22 20:10:52 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 4V1YP33yxyz5FFgf for ; Fri, 22 Mar 2024 20:11:03 +0000 (UTC) (envelope-from rebecca@bsdio.com) Received: from wfout3-smtp.messagingengine.com (wfout3-smtp.messagingengine.com [64.147.123.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 4V1YP322fZz45l9; Fri, 22 Mar 2024 20:11:03 +0000 (UTC) (envelope-from rebecca@bsdio.com) Authentication-Results: mx1.freebsd.org; none Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.west.internal (Postfix) with ESMTP id 68E7A1C000A6; Fri, 22 Mar 2024 16:10:59 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Fri, 22 Mar 2024 16:10:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdio.com; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1711138258; x=1711224658; bh=oYPxxc/9sO810bTFJxH8BfxnN9JpXr5zMDPhN7vVFJ8=; b= CYYDx3jVnnr18UgxB2/s+oJMYmawHezRyE4B2FNKRnMuubYjjww111tUoJDRs6KZ nOddrq23bPclNw7p9Sjd5WrYEu/ubWsPH7XiXNTXmiqzMTlLhg4TvFPIgs/i/ktN 3h//3ehWB1JDBDRITJRusH3wb51uRlAf3rgRRvSbgEIEcQPc/NJ0HngpsSAIeQFe MQIKipZHotLuVJWgmoat/SnYpIfiCszuiPE4u2GuBuSaCEzi2jdn94MOeHqg/Dsi m4eDPXZabM7nzqlGCLYcEuVGoNT4/PAO2Udma/NV4Ibg9dodauiyJpFTWDdqd/IK U2LP26Y4CsL2XP1fhwvwhQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1711138258; x= 1711224658; bh=oYPxxc/9sO810bTFJxH8BfxnN9JpXr5zMDPhN7vVFJ8=; b=a dT5C5uddNyBhQ0dDL/hYhbhZ6VLY+S0hH0OWQ3sNMW6qVc2CFO2k8/UV/HtAc4dz 2d6Z7I9n6khzWzHPKf7cd7lXX3BiasmHL+Mp8R+J1MCZmi9nU9Rx6hlhikDJXyw3 Mx+VE4fNbYyNGSDW3EH9p2WYwTShSDe98XMFBnniJigE7HrGCFHVyVnaGgIbFSI5 3YnX+QWa+I2+FfrvF0vPiAnkKhvmLqD0vDk37gB7cxiy86wsyfMcu4Pnd0bhyrdW nUm8qvK7G5jaiB6eq/ItxxQk9llbkbnLX4qbGqMCCX1ztVcQRzf8zKsAtDL0Iltu JFTG6c3U31t60NOJ0vJHg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledruddtvddgjedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfuvfhfhfgjtgfgsehtje ertddtvdejnecuhfhrohhmpeftvggsvggttggrucevrhgrnhcuoehrvggsvggttggrsegs shguihhordgtohhmqeenucggtffrrghtthgvrhhnpeejhefgtdeludeitefffeevteduhf eiffdtieeuleelgfevuddthffhudegfeelheenucevlhhushhtvghrufhiiigvpedtnecu rfgrrhgrmhepmhgrihhlfhhrohhmpehrvggsvggttggrsegsshguihhordgtohhm X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 22 Mar 2024 16:10:58 -0400 (EDT) Message-ID: <8af153a9-db8a-4329-aee2-d58ddc59b7ff@bsdio.com> Date: Fri, 22 Mar 2024 14:10:52 -0600 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 User-Agent: Mozilla Thunderbird Subject: Re: Errors reported when booting an Ampere Altra system To: tuexen@freebsd.org, freebsd-arm References: Content-Language: en-US From: Rebecca Cran In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:29838, ipnet:64.147.123.0/24, country:US] X-Rspamd-Queue-Id: 4V1YP322fZz45l9 On 3/22/24 10:48, tuexen@freebsd.org wrote: > Dear all, > > when booting an Ampere Altra with an up to date main branch of > FreeBSD I get: > ... > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! > ERROR: Multiple Proximity Domains map to the same NUMA domain 0! From what I recall looking at this a few months ago, it's because of some sort of mismatch between the IORT and another ACPI table when the system's configured in Monolithic Sub-NUMA mode. I think it's more pointing out something that's not optimal from a configuration perspective than any real error. -- Rebecca Cran From nobody Sat Mar 23 00:31:01 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 4V1g961kdSz5FlLB for ; Sat, 23 Mar 2024 00:31:06 +0000 (UTC) (envelope-from joseph@josephholsten.com) Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4V1g953n6Sz4ckp for ; Sat, 23 Mar 2024 00:31:05 +0000 (UTC) (envelope-from joseph@josephholsten.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=pobox.com header.s=sasl header.b=Y68TS+5K; dkim=none ("invalid DKIM record") header.d=josephholsten.com header.s=2016-12.pbsmtp header.b=lNOxBH4u; dmarc=none; spf=pass (mx1.freebsd.org: domain of joseph@josephholsten.com designates 64.147.108.70 as permitted sender) smtp.mailfrom=joseph@josephholsten.com Received: from pb-smtp1.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 7D2EA1CD8EA; Fri, 22 Mar 2024 20:31:04 -0400 (EDT) (envelope-from joseph@josephholsten.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-type; s=sasl; bh=aCiBcwCs8ugwFIBupv2n8XfnGZuboQCcZntFzo jcW+o=; b=Y68TS+5K8yCRehEqdvWVw11IH/732EIchiUXASeTunClbbtNpRnbcB 9eLE404Ut5CwWR98eF5uUQHgf5kaTCh0thRzHufEZBUginXqDZu3wHAVQbczT/5X SRcIASkKK3gHoMHwG4+0u2JX3mm3tjEmXBNjJfYbFlDtwCu7pYHxM= Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 5BC7B1CD8E6; Fri, 22 Mar 2024 20:31:04 -0400 (EDT) (envelope-from joseph@josephholsten.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=josephholsten.com; h=from:to:cc:subject:date:message-id:in-reply-to:references:mime-version:content-type; s=2016-12.pbsmtp; bh=aCiBcwCs8ugwFIBupv2n8XfnGZuboQCcZntFzojcW+o=; b=lNOxBH4uID22P+T9PLchmxzl8MysRr5lol9dob5Hhb+ZvMGc87NfwzdQsno1nKN7Mnb7r755hxMbNzVAXW7U6iputzzdIs2s+UIuhkqd/TUOmoN2iBwTvOINtX7wOB8Fi3+Rsy/GHgjmqEZUj8Ra3ombZbbd/ObcD/8N5QKAXkA= Received: from [100.109.181.67] (unknown [50.46.198.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 1356D1CD8E5; Fri, 22 Mar 2024 20:31:02 -0400 (EDT) (envelope-from joseph@josephholsten.com) From: "Joseph Holsten" To: infoomatic Cc: freebsd-arm@freebsd.org Subject: Re: free ARM VPS Date: Fri, 22 Mar 2024 17:31:01 -0700 X-Mailer: MailMate Trial (1.13.2r5673) Message-ID: <7D8D8945-8140-490E-9F02-6090250EB56D@josephholsten.com> In-Reply-To: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> References: <3a9870c3-e29c-4782-a148-57684d1f917d@gmx.at> 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 Content-Type: multipart/alternative; boundary="=_MailMate_B75666D7-D54F-4216-BB33-2206C7AC6552_=" X-Pobox-Relay-ID: A140CDA2-E8AC-11EE-9254-78DCEB2EC81B-15777318!pb-smtp1.pobox.com X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.60 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DWL_DNSWL_LOW(-1.00)[pobox.com:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.998]; R_SPF_ALLOW(-0.20)[+ip4:64.147.108.0/24]; R_DKIM_ALLOW(-0.20)[pobox.com:s=sasl]; RCVD_IN_DNSWL_LOW(-0.10)[64.147.108.70:from]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; ARC_NA(0.00)[]; FREEMAIL_TO(0.00)[gmx.at]; DMARC_NA(0.00)[josephholsten.com]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; R_DKIM_PERMFAIL(0.00)[josephholsten.com:s=2016-12.pbsmtp]; RCPT_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[pobox.com:+,josephholsten.com:~]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_MIXED(0.00)[]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:19151, ipnet:64.147.108.0/24, country:US]; MIME_TRACE(0.00)[0:+,1:+,2:~] X-Rspamd-Queue-Id: 4V1g953n6Sz4ckp --=_MailMate_B75666D7-D54F-4216-BB33-2206C7AC6552_= Content-Type: text/plain; charset="UTF-8"; format=flowed; markup=markdown Content-Transfer-Encoding: quoted-printable On 11 Jan 2024, at 4:00, infoomatic wrote: > Hi list, > > While I am not afiliated with the vendor, I just want to give a little > hint to you, just in case it is not known: Oracle has a "always free" > tier with some services which are free to use. With the ARM Compute > Instance you can have Ampere A1 cores and up to 24GB RAM (in total), = > so > up to 4 free ARM VPS. > > I have used it for my small personal projects, and it works great with > FreeBSD, also the upgrade to FreeBSD 14 without problems. Hey there! I am affiliated with the vendor, my day job is coordinating = the team that handles support tickets for Oracle Compute. Some more info I hope is helpful: - The only image available today is FreeBSD 13.1-RELEASE for ARM64 with = a UFS root fs. If you=E2=80=99re eagerly awaiting 13.3, 14.0, ZFS or x86_= 64, = you should follow this ticket = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D277831 - If you haven=E2=80=99t used FreeBSD in an ephemeral VPS environment (co= ugh = cloud cough), you should investigate cloud-init to bootstrap systems. If = you want to debug cloud-init scripts super fast under jails, check out: = https://lseek-urandom.blogspot.com/2024/02/using-freebsd-jails-to-debug-c= loud-init.html - You may hit out-of-capacity errors in some regions, Ampere cores are a = great value and they can=E2=80=99t manufacture them fast enough for the = demand. Also, the free-tier credits only apply in your original region: = select it wisely! But Oracle keeps a certain buffer of unused capacity = available for paying customers. So if you get out-of-capacity as a = free-tier customer, giving Oracle your billing information means that = you=E2=80=99ll get slightly better chance of getting an instance. If you ever hit issues, please let me know at this email address or via = mastodon at https://mstdn.social/@josephholsten -- Joseph Holsten +1-360-927-7234 joseph@josephholsten.com --=_MailMate_B75666D7-D54F-4216-BB33-2206C7AC6552_= Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On 11 Jan 2024, at 4:00, infoomatic wrote:

Hi list,

While I am not afiliated with the vendor, I just want to = give a little
hint to you, just in case it is not known: Oracle has a "always free"
= tier with some services which are free to use. With the ARM Compute
Instance you can have Ampere A1 cores and up to 24GB RAM (in total), so up to 4 free ARM VPS.

I have used it for my small personal projects, and it wor= ks great with
FreeBSD, also the upgrade to FreeBSD 14 without problems.

Hey there! I am affiliated with the vendor, my day job i= s coordinating the team that handles support tickets for Oracle Compute.<= /p>

Some more info I hope is helpful:

  • The only image available today is FreeBSD 13.1-RELEASE for ARM64 with= a UFS root fs. If you=E2=80=99re eagerly awaiting 13.3, 14.0, ZFS or x86= _64, you should follow this ticket https://bugs.freebsd.org/bugzilla/show_b= ug.cgi?id=3D277831
  • If you haven=E2=80=99t used FreeBSD in an ephemeral VPS environment (= cough cloud cough), you should investigate cloud-init to bootstrap system= s. If you want to debug cloud-init scripts super fast under jails, check = out: https://lseek-urandom.blogspot.com/2024/0= 2/using-freebsd-jails-to-debug-cloud-init.html
  • You may hit out-of-capacity errors in some regions, Ampere cores are = a great value and they can=E2=80=99t manufacture them fast enough for the= demand. Also, the free-tier credits only apply in your original region: = select it wisely! But Oracle keeps a certain buffer of unused capacity av= ailable for paying customers. So if you get out-of-capacity as a free-tie= r customer, giving Oracle your billing information means that you=E2=80=99= ll get slightly better chance of getting an instance.

If you ever hit issues, please let me know at this email address or v= ia mastodon at https://ms= tdn.social/@josephholsten

Joseph Holsten
+1-360-927-7234
joseph@josephholsten.com<= /p>

--=_MailMate_B75666D7-D54F-4216-BB33-2206C7AC6552_=-- From nobody Sun Mar 24 13:02:56 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 4V2bpT1cHwz5FdBQ for ; Sun, 24 Mar 2024 13:03:13 +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.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 4V2bpS1ZGSz4p6n for ; Sun, 24 Mar 2024 13:03:12 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=ZUQ0IE0T; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.30 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711285387; bh=ATNQilRnSx2KbJ3wqDUHmhJDomEos+lyCkrxzJoAiW8=; h=From:Subject:Date:To:References:From:Subject:Reply-To; b=ZUQ0IE0TGRsx2qxLQIlokT27lI7kj9IjUY6vHawG0ddXI+pvfz0kWdA4cGagGtF1efc+46uMbHdr2btTZ22ZrJW/T7sFyKLKltswDaNFVN0VjoHN90XlKc6ID2Nk9UyMe6+izIYLo40aTujkQPBX4JLYAOPxNk1p1iE7Dgu176jCATM+cloihYM5D/crm4Uo76mJI/PlqgHtDpfjx9yuikvAYTuvcuXZ+CHzsUjO8/+LDEnS2/m6YmPqTmxqTpKkwhrQ4t404DAf6aBitpXzu5R/4zxjFxP4f4rJ8wuJCksxkCd73CcpRnsXl3x7UxOLZjp1K7nq9jikuj9wdVMfXg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1711285387; bh=1wEV9vzgw27ipxcop5oANOK+zRU92oAjA2Q5r3xE9Gv=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=pZqFDVnEZmOQmLFmjZuMn6aPGGCo2TmhB1+Ns2TE3QRs+wdXld4woBKdQUNIs4TC6OZGF9Gi+wnHSd41tNtF2fIcbouIOwHbpC7qrctbnsbeIXS9m38Jd5mQRYhMI5NwIUhFnwsLhyeZzWBs1L6SoASC2VNRYDlsUhunOOcIOPvMZub+MoFx3dUPk2B0Vblwc7zdBzbQQWUzRWOjqDKfA7ku/jkwFSuVNmfoYGnyr6cvOXaPA/Avi43FnJOGYjJgdIMQTom0bawoM8IE26oQj9jT9sHZw+iMM6mkJ+1mKzh37/3U2AuVV5gWahuUEdhmrohJHfY+h1HwN6gEb2hVvA== X-YMail-OSG: Qy5eVoYVM1mTHUbOcF0cfgGWY1YIOymBWE0LyHPMaV8wvXG0ljQWeZLCJ2LEzQ2 dKyBDcxZJnjsq0lexbuH1yrblY64hlZlhbUrLURIV.ncyRsqdilbIwTQovZWxP_4UsN1PdFigGiH PRKEpJekqbJCekjaQommk6JPCHxtfY73KWKueqfPJvQMMYruNIBQdv7yYsURX_otZVvdrmjsCvT_ Z_4xwkg8HM9QHx4a50fXSwOgO_wr09mXNC3nGrJ2FYXRi2_f4BKC9H16R7lzvlTTlCJuPeoZWAdf Z8pDsLCocWjOe4u8Xu7EN3LZAddr8z8mhUMd6963.ojoYmXukVv4H6MD.1CJICuEeXTgrwR6Xj6r KzAPsVs40brebAGy5LbjZp2LPp13jLfvEfk_67ltcJetS5s8qDp.V5.tVVlp_C.zPkrPP2xILnIY A0yLYMMC_eOhim9i_bWXWsOK8PYVFxsMyuLyJZOnpSZhxeo0uVVmV5HSmB10SffOG6W2Q2A_QJdn mKXZy4Z0F6y48jwTlGYCkEK8S8yANBcTDwnXsjLVJdhHmtz39stWi8Ea_qNj.s7fuZDHg6yPznPx gIJuaXEQ6Rimi5fHLq1BKdHqyiB7q2mbYM_Me4shxV3f6lKLpEOZu1rIqWSNnRPTvMn2b_SBkB0f 7gOboPQZuWva712FStItfs7O_5JgoMvHN3M1eL2eCcNQTNLnE_1qmrP.70w_sPCIIvIllCaltTmk UtC2bQThmjughA9oVk68dJdeJBC4Wx6PddVhP7q45E4g3z2FF9J8uCG_N_GO_FnbtGZlkrRTfEjZ Lwaemhl2gl1GogM98ggLMfgfmzLLYU0hwe86VZsR9AsMCEP3t2ECGdhL8oFbBK.FO5899cK3FJS6 0yaogIYXA82Zd.nq8WyFWbStutOUq8Q4gLzVUXu7Ah35v0YkHRfWlhbRQEF5RneRzIljyujv8CNr eoPw28N_fnLP.Os_nHO_CjfJRail__zeV7rcesS.dQ4JlyXqgGJuUKdW2KJSmYlBGjO.BDuM49EW j4_Imw8blhJb9MuMpeEh2PE79CxeHJmEZGzU6wwqxsq_7_x3UcIsPPGxfPdjcaGpmpb0_iCqt1vy hslly1PouLsJsynjPoDqM1R9urWNCAx14OBHVowPSMQl.8TkDt5MYhUXjZ10HhWi8zRvFtuSx59h iPXKBeLi0OY51RAsfMz7cvxu5owxr3.faUu__FAMFCg1zRxGa84zHQsKIFe_9aGRedlX3AZe5NQx wl4AWd7aAKno3NV6bdrq8tqqdHzEijD4Ki9UZLQd.DWswPOSxoZiCKmF01ZaRblSBtr2Y9I2QVM4 Z96rvlC0saBMFEU5rwvkmN.T1onoNy9TEflocgg0ZaL079zEA9.c_im34n0LFkgwG6xh2OrU6BDD 3H8oxF4QTAh0DKMlP3dtPkGV29d1CNppRyzN8YZI6HwRQX6GIM8Wayubvt48hL63Q4jKq8tDsYcK KPX.kqYQ62cB6YeFP0P5AFuwLKLbZCZEBStef8dLkAv53h12q1m8XgcTGfXzoPlUMVsiDhnWzYcG RU7cQv5lndKhyxvMNKWEHWRvWhlOfyKXKTfKkrS9WtHeli7EXD6vGlgQ9DqSz.r_Xz5Hse5Ds_13 FDAMAJzUJUuJryw43w27ulZpMKNKegZFyndV0P5CZVD2RCHDxo2A31WCSx6.buTzsBo7vQpFJAkd aoDwnafPMZOVqeUs5cR3yyQaoHeM8.R1CJdYI21On5tqoLnY_om5VQZJqPCPOS7krmEZOyLMJn65 WVA3GpH2fdva2H.v1lTuQtlFP2KVWv8RltKlK2VbFcEoZfD2pcFvsaUJbxskPmX4CKk58mE6ZRqL mvf7Fz7lUoFWt5WmthxzB0CQ7H5JdvmMzBSannwKXmSkkLI071C8LSac.89iVfkFLSwrZxNozTOl yr5q4O1R4741_yT8aYTVWGrfSmhhC3dLzvZCy4.Z2r0sqTYRVSgC5ZWSPnJKWD4ncFZ4y0hOf4Fw zfUolmp6w7Yk90ZEQxy6CBcGCS6dlEfysqIBfSrBMY2pJaM62umw0yXX.zjI3H9MTSkFEze1ky50 vwQeCcb4V2ijhWQ8sp0v_JdJCUm0_qXPd13e89UvDReX5tgC7z3CsSWZ.dzHFOQkmiB1u.pa59Az IPhMNpCV9pTqD07Ias_vXJXIWxzmzh84hZdwcZcowwzh7UIW6_FH..5.E6CbtqEX51MuRHQHR_LG FjGABYVOcVQPinQgk6r_nZTZH3x_PZfMK3W..sawiBTVtRNOQtQ1SWAz1YnmtrfB8oeIhzwknegs - X-Sonic-MF: X-Sonic-ID: 6152f479-ee9e-4421-b321-b114fc3807c6 Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.gq1.yahoo.com with HTTP; Sun, 24 Mar 2024 13:03:07 +0000 Received: by hermes--production-gq1-5c57879fdf-c7xks (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID c9e64e2394b8cc9f57a38c0e1c1d50cd; Sun, 24 Mar 2024 13:03:07 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable 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: FYI: main-n268827-75464941dc17 GENERIC-NODEBUG UFS-based poudriere bulk context got 4 "swap_pager: cannot allocate bio" Message-Id: Date: Sun, 24 Mar 2024 06:02:56 -0700 To: FreeBSD ARM List , Current FreeBSD X-Mailer: Apple Mail (2.3774.400.31) References: X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.99)[-0.994]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; FROM_HAS_DN(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; FREEMAIL_FROM(0.00)[yahoo.com]; DKIM_TRACE(0.00)[yahoo.com:+]; 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.30:from]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.30:from] X-Rspamd-Queue-Id: 4V2bpS1ZGSz4p6n Context: I'm deliberately testing building example poudriere-devel configurations with only 2 GiBytes of RAM and RAM+SWAP =3D=3D 8.5 = GiBytes, SWAP on a partition of its own. # tail -3 /var/log/messages Mar 23 16:39:38 aarch64-main-pkgs kernel: pid 37137 (conftest), jid 11, = uid 0: exited on signal 11 (core dumped) Mar 24 04:51:50 aarch64-main-pkgs kernel: swap_pager: cannot allocate = bio Mar 24 04:51:50 aarch64-main-pkgs syslogd: last message repeated 3 times It is the first time I've seen such a message. I've a modified top that tracks some "MaxObs" (Maximum Observed) figures. They happened to show: Mem: . . . 1473Mi MaxObsActive, 477304Ki MaxObsWired, 1908Mi = MaxObs(Act+Wir+Lndry) Swap: . . . 3101Mi MaxObsUsed, 4456Mi MaxObs(Act+Lndry+SwapUsed), 4887Mi = MaxObs(A+Wir+L+SU), 4933Mi (A+W+L+SU+InAct) (The 4933Mi (A+W+L+SU+InAct) is from when 4887Mi MaxObs(A+Wir+L+SU) was live but is not a MaxObs figure itself.) It was paging significantly at the time, of course. It seems to have survived okay and everything continued to build. It got past the peak RAM+SWAP use activity. For reference: /usr/local/etc/poudriere.conf has . . . NO_ZFS=3Dyes USE_TMPFS=3Ddata 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 /usr/local/etc/poudriere.d/make.conf has . . . MAKE_JOBS_NUMBER_LIMIT=3D2 /boot/loader.conf has . . . vm.pageout_oom_seq=3D120 rust and llvm18 were building at the time. The from-scratch bulk build is of 271 packages. 143 had already built. llvm18 was using more RAM+SWAP than rust and was working on some llvm-tblgen runs for AMDGPU at the time. The swap partition in use was/is: =3D> 34 1875384941 da0 GPT (894G) . . . 523773952 13631488 da0p10 freebsd-swap (6.5G) . . . # uname -apKU FreeBSD aarch64-main-pkgs 15.0-CURRENT FreeBSD 15.0-CURRENT = main-n268827-75464941dc17 GENERIC-NODEBUG arm64 aarch64 1500015 1500015 That is a PkgBase kernel and PkgBase world combination. The poudriere bulk jail is also 75464941dc17 but was via the artifact build materials. The 2 GiBytes is via the RPi4B config.txt having total_mem=3D2048 . (I've no access to an aarch64 with 2 GiBytes of actual RAM.) The media is USB3. It happens to be U.2 Optane 960GB media via a USB3 adapter for U.2 . The UFS partition was/is: 537405440 1337979528 da0p9 freebsd-ufs (638G) =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Sun Mar 24 21:00:44 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 4V2pPT0sQNz5GRNl for ; Sun, 24 Mar 2024 21:00:45 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V2pPS5B9fz4m57 for ; Sun, 24 Mar 2024 21:00:44 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711314044; a=rsa-sha256; cv=none; b=F7QrRqT9jcb/azSifaBxvxbquAfQ5RfvhqEalt0XRkuSVUpQ9DJ0cTAIeikqrZ/XCopt8P rqsqni5mb6A6Rn3mqA+jZ8byF4MD6/jJvQkNht3WPZnJ7TMmIBjMmu085Io/fozHjSAwmZ bPGyuXSad1vxyiiKt30Mu0Yvz9Crhu53fjChtEke0DBsmmwaUPpK5TZwgttIpWtrGAn5zC P3fqhn7/RFxAC7JZEE1ZgxTicm32jToPeFoWzGLXpZs5iL6qmxR7AuJCFHqEIIsHEkTG1s EngiLsp53GI05kJzBuvDbXwrd1TiZNnqLqjwUkz3iIcl/NiLxfMoz/YIwN1FEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711314044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y6gCAxf77MBpv0llPvpBt/uUP+8RYPS32gzTVULB5XA=; b=NyfAgchPBti/BZEJmYgr6+YiIbH9KNapvaCGuZLvc9bedwTiLJ67g8//JQZuj1sKefhG7y zsH2e+bUAs7JjClT00O+MqZOQtKBa27lbKExAaNZ7ceU/A+k3F8dzwDZ7orum+/PxHzfu9 yynKlpUNVSmxqVmHdcFio1c8FdOs35Qc3iamVV2GEuhoq/kG9r1ieK0MJYfeANjn5y2UQk 6CVR6j2VkzKMCMdjNGaujCJpmWdRv9d+90oW0YsL8Si9kjhYLHd6UdjIYh/mflQHIEyC4E Lmn8J7unWz6c+jO3yHutmLdfcSzZoC+XzN0CgqEX+CoRi71wKM0KjamNv7bEoQ== Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4V2pPS4pYCzp2V for ; Sun, 24 Mar 2024 21:00:44 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 42OL0iBx064837 for ; Sun, 24 Mar 2024 21:00:44 GMT (envelope-from bugzilla-noreply@FreeBSD.org) Received: (from bugzilla@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 42OL0i3R064836 for freebsd-arm@FreeBSD.org; Sun, 24 Mar 2024 21:00:44 GMT (envelope-from bugzilla-noreply@FreeBSD.org) Message-Id: <202403242100.42OL0i3R064836@kenobi.freebsd.org> X-Authentication-Warning: kenobi.freebsd.org: bugzilla set sender to bugzilla-noreply@FreeBSD.org using -f From: bugzilla-noreply@FreeBSD.org To: freebsd-arm@FreeBSD.org Subject: Problem reports for freebsd-arm@FreeBSD.org that need special attention Date: Sun, 24 Mar 2024 21:00:44 +0000 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 Content-Type: multipart/alternative; boundary="17113140443.729af.57478" Content-Transfer-Encoding: 7bit --17113140443.729af.57478 Date: Sun, 24 Mar 2024 21:00:44 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" To view an individual PR, use: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=(Bug Id). The following is a listing of current problems submitted by FreeBSD users, which need special attention. These represent problem reports covering all versions including experimental development code and obsolete releases. Status | Bug Id | Description ------------+-----------+--------------------------------------------------- Open | 264574 | sdhci(4): Support ACPI attachment in BCM2835_sdhc 1 problems total for which you should take action. --17113140443.729af.57478 Date: Sun, 24 Mar 2024 21:00:44 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"
The following is a listing of current problems submitted by FreeBSD users,
which need special attention. These represent problem reports covering
all versions including experimental development code and obsolete releases.

Status      |    Bug Id | Description
------------+-----------+---------------------------------------------------
Open        |    264574 | sdhci(4): Support ACPI attachment in BCM2835_sdhc

1 problems total for which you should take action.
--17113140443.729af.57478--