From nobody Sun Mar 9 09:02:51 2025 X-Original-To: freebsd-ports@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 4Z9Yvx6nBCz5pWbj for ; Sun, 09 Mar 2025 09:03:09 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic317-22.consmr.mail.gq1.yahoo.com (sonic317-22.consmr.mail.gq1.yahoo.com [98.137.66.148]) (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 4Z9Yvx4dCVz3wyQ for ; Sun, 09 Mar 2025 09:03:09 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=oiO7JJCB; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.66.148 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1741510983; bh=xg5bICTXeMZ8L6uhk7jEosAOMN0b6IGfWhTopSoOCqo=; h=From:Subject:Date:Cc:To:References:From:Subject:Reply-To; b=oiO7JJCBfVzJGWztkzJdRlGuHGCxUtJrIsac3WvSwAPcc9gZ4KSwaj6L2FD7Y5/VxXmKKAnF/KeDAQXpXP6BxlpdsdtF6XjHs/c+oxKK89PTNuZcDi1s5/EpXGQOueqrkJLiNhYKAqWj3VyNkAEFJsj5XXmOx620NMHXII6SrjIM04WyArpDNTVGFDrPyA72hR+xbZx0aBcDbcpTBn4qyjsuIJRCycdePQe5S/BnqADlmVVbvrzUUgmfKQ7iBkNZFE61sQqY0/7Ry3Rm9yxXIOVgPh6/T6kEY4btssxlBWygPPIy0pp87LVjykfXn3mDSfgcidPgmJ4xPoOwWY/e2A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1741510983; bh=hkgWde+zbaeFmmIuv4H8P6wR8sxDzFEhyfp8f61XcEf=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=NWtWSSGH6+4mdXCp/Ub51Cc8Ker3Qcba8AGDzvSDCRfH9qkadwPoqc/DZXv289+phcK8d2yUDHBbiS9/2HL/fFTjoe/jQUfawzI41TEc8eb+PLa2Ewximo0XlmEP9HhMR1FLi2Cu5RqnO69/1O+w+ha6RIanpld3J5Z5JOO+5mEapElWyxnO/AFwcjRA51wH1xfDoGOj8UTsQzSDxxaeXUfv+j8wsx5Smo3RbllhVG20W68pUPjGAOOsylxPdDWetHDhAYQYhiC3w5DXj9q8TM71zEOQXZoio2uv7fiqeL5H1Fhm39Z4aaIwpnLLNuT+LW6OznfNw2fQJIyHEADDPg== X-YMail-OSG: s2Eka.AVM1npPm1zB1L7Jxarv8gV6dxb1dIeknP9tC3F8WaVt2BzJMAjq2rSXxo MCyIrb_mM7O8ualVoXNAaPZ3mUcrWKgKiutm8UrJF82RmzTgt4pq617o4T0IWMD_cmLzbMbpvFma PidS6l454ELcxhUWXBEzk20GgFCa7ReyIqCg8HzzFoV8jr7zzeqKyd0QzqKmFw7UPwNqJHo33_PY ttooPXHskrazpafjE6J7rk34R.CE8YHfZWCBW8m2PWB7xyzewuLK2SPwx9qkq143yG54GA4EvbkQ pGj7_Pz.oeJQ4bn5mtBeHU2BzOyRki1vI93had56Os6Eass6AIy8Ne2zwXA7gEOMbg.0J_AwAoGm PkRtFhor0axxKyYE_YpeF1mKLr4MasqkvNS.NaLVTK6av9sb.ZnBCq.3l1Ft6uSKoyT41auNrz91 oH.Z_7IvhzkwK0d2f2l.DGcf1nBlDEHzJmyGssj_WVcImPub57TLuNlXxPx7Fot4XB7IGlAWVE.Z nqK6HM2ulJp2qSxdttPyMf4cFTx1UiWaHEsl32W_SPO_mQZg2o9PYjQ2VsWLfhYK7nk96oMog0IZ prhAo0HADk7JCyG5sP0ljsS86.hN4nqSqIsVdY9BlpcXxZ4qszDgFXi.aDXwAKA1U90G9SUXWSQH UchYiHFJo1m1i93hw7xlxb3h4ORrAx_cTg1t.chuxX9us71Cm0hgUqhwPzZNbTPIjvuei6E43nHf RFDR2gFM3St.c1H7pbIjgI2OlRSWh2clTwatTSV.oJrPM60e31fkdCLO6HggPA.TwdaXfTFu2sOj pvFojvDTRiaOfeaahIUZ3v66qlBFSv0jssq07rQOUK9VrW09l0c50zTTpEQm.q_wnqIj1zZWae6i BH32SEvURr.L33Xk.lmvXKpdsKXvOJh6xmUsJ3vZOkOp779JlDFYcLoZH4cPoLzVsLitlwkP6lA_ mwSDCi22uFdsRtdDg6uSJe5cqA9rt0mit0DtwmiQBKFdPMPqggyCtaqVCn2NWoH9uqvGcxJfhcoI mlKbmAkerxJf56DNeO9wIY6HGHOxUSLdZ6d99.JBhLZG61jZUtnbTo1LF6XdcrCz2NDt59Nqs3rX RrdbzzkKKgLpQzJ.06tgVpANvXCwKjlatK5yF9g7fEdTOKllk.v61LwGWeMeocsy72YQ6HZHa6GZ tWpDEya.ALRxFrW4GP65UNHlN2jsMPwdoGqtptljLwMkd.2E8hZhObtmsURAi7W4YJmYWNXu4dVl S_iqQ1YAmiBXzM0wvUT6y5dgSkWXpOuoIpppr2GWs.pUJCogIpocef4hZKaC.wyYhnoZTOJIqmLa bicUTEYZNKeVmWJncAndEDPUwyVuo0c27CjCw6PDoC1Nf023EyeVZSnWjH8NTlvBBIWaeYeL5upa E7uopElgwrVznnN5ExLq_kjg.JwpEgwvhSaLHUd3M5Q8wqZAC9Mw2jeWgM1ktofqpY.XCdvnpSu_ mMuKRDUc_uNazPoF5ZKd6oA7LO0EUhmoBWsaECJkKnht1EwhbckyBEhozc9sS4uMAbXO3ZaSUuCz 6u1AnBhdyl.D7TcgeiTPYuIlluAzYeOMIEnb9TNdxokIe4d2mIISambNk2fvoixloYEx1PvBoZ6Y tcmMt_7kIeF.GOatmk8m_ZxsNsjPJz2qondCaXTwy_8xRSLGOdO4_TIZt_oBuSE93Gs4T52RvS9b fOAn1WmQaQcwRxA6SURSjnGTOqVvZJN_oByBQzUdtm.n8qwev9PhtgpQUeLP6Gkv0N8rBFVy4tvC BauwhY74Ymdc44BfXb4DjlDZlvGKnUUSEZ_3JqZjrKLV67zm0yHV5P34Oa73w_ZNWBu5NPjRhgoA OfdIP3uhl.vYcUb5Cgghm5BB5XNxgNrKWu01V3L2bMnXP7q9qXUV2lVSy6X.4Pktf3zURbIS4tFo oQnM2UGB9dn4LRBYDC6cbJRgpfgAIywQDIzVin.KeUWcDtLJ421jJnYg8jc98gqY_zsZlQ96taz8 lSIGwuU.402QiGwwFB20UEGdX3EpB88U5R0wSu8JgeMQUt2653.pym_KlENuNZMuRUL4.7BX8MMy hfVbUxZqqZQDkUp_nWETP7NbyuKz2V70E5Zjw0Vmw0hbL81emG0GRyl9Odp39J1R_yJ2t.t0ynYt _2FaRltwvLpHGDw4JkzVTOhBsOcgHediQF1jvnUaROznVdoibov__XISBvbRKPkOCBd4rdb6nmNj J2efXFoFOfpFdKPvFW9ZRzO0RwGpxWKA47KhkHsz9Z9Es9zf5Fl1dJF2yvurbEjp_araofX2yAFf Akf8- X-Sonic-MF: X-Sonic-ID: 0343e1af-26fd-4554-9d48-06fa59aad939 Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.gq1.yahoo.com with HTTP; Sun, 9 Mar 2025 09:03:03 +0000 Received: by hermes--production-gq1-7d5f4447dd-zm62q (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID d16cb5008f967a9ed88a70dffdc450ff; Sun, 09 Mar 2025 09:03:02 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: freebsd-ports@freebsd.org Sender: owner-freebsd-ports@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) Subject: Something to avoid for using tmpfs for inactive poudriere(-devel) builders? Message-Id: <58D16ED7-486A-4F68-B925-28E9C90E384D@yahoo.com> Date: Sun, 9 Mar 2025 01:02:51 -0800 Cc: Bryan Drewery To: FreeBSD Mailing List X-Mailer: Apple Mail (2.3826.400.131.1.6) References: <58D16ED7-486A-4F68-B925-28E9C90E384D.ref@yahoo.com> X-Spamd-Result: default: False [-0.49 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; RBL_SENDERSCORE_REPUT_9(-1.00)[98.137.66.148:from]; NEURAL_SPAM_LONG(0.95)[0.954]; NEURAL_HAM_MEDIUM(-0.93)[-0.932]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; NEURAL_HAM_SHORT(-0.02)[-0.015]; 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)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; FREEMAIL_FROM(0.00)[yahoo.com]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; 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-ports@freebsd.org]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.66.148:from]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.66.148:from] X-Rspamd-Queue-Id: 4Z9Yvx4dCVz3wyQ X-Spamd-Bar: / In looking for why the builders used notable tmpfs space even when only one builder was left that was active, I discovered that, for example, each builder ends up with its own copy of /usr/local/poudriere/data/.m/*/*/usr/ (and more) that does not end up being cleared out while the builder is inactive. This looked to be a systematic contribution to the tmpfs usage during times when various builders are inactive. df -m /usr/local/poudriere/data/.m/main-aarch64-default/*/*/ | sed -e = 's@/[0-9][0-9]/@/*/@' | sort -k1,1 -k6,6 -k3,3 -k1,6 -u /usr/local/poudriere/data/.m/main-aarch64-default/ref/rescue = 1114846 498917 526741 49% = /usr/local/poudriere/data/.m/main-aarch64-default/*/rescue /usr/local/poudriere/data/packages/main-aarch64-default/.building = 1114846 498917 526741 49% = /usr/local/poudriere/data/.m/main-aarch64-default/*/packages /usr/local/poudriere/data/packages/main-aarch64-default/.building = 1114846 498917 526741 49% = /usr/local/poudriere/data/.m/main-aarch64-default/ref/packages /usr/local/poudriere/jails/main-aarch64/rescue = 1114846 498917 526741 49% = /usr/local/poudriere/data/.m/main-aarch64-default/ref/rescue /usr/ports/distfiles = 1114846 498917 526741 49% = /usr/local/poudriere/data/.m/main-aarch64-default/*/distfiles /usr/ports/distfiles = 1114846 498917 526741 49% = /usr/local/poudriere/data/.m/main-aarch64-default/ref/distfiles Filesystem = 1M-blocks Used Avail Capacity Mounted on devfs = 0 0 0 0% = /usr/local/poudriere/data/.m/main-aarch64-default/*/dev devfs = 0 0 0 0% = /usr/local/poudriere/data/.m/main-aarch64-default/ref/dev procfs = 0 0 0 0% = /usr/local/poudriere/data/.m/main-aarch64-default/*/proc procfs = 0 0 0 0% = /usr/local/poudriere/data/.m/main-aarch64-default/ref/proc tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/01 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/02 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/03 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/04 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/05 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/06 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/07 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/08 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/09 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/10 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/11 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/12 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/13 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/14 tmpfs = 66539 1140 65398 2% = /usr/local/poudriere/data/.m/main-aarch64-default/ref For the above, only ref/ and one other were active at the time. Imagine having 32 builders or 128 builders or even more with 1140 MiBytes for each inactive one. For the, above all the builders actually reported: Inspecting . . .: determining shlib requirements for each package build it tried. No actual builds were done. [I'll note that the world directory trees for the booted system and for the poudriere jail are from official PkgBase builds that were installed. Also, the system is UFS based, not ZFS based.] For reference (note the use of -x): # du -xsAm /usr/local/poudriere/data/.m/main-*-default/*/[uv][sa]r/ | = sed -e 's@/[0-9][0-9]/@/*/@' | sort -k1,2 -u 376 /usr/local/poudriere/data/.m/main-aarch64-default/*/var/ 376 /usr/local/poudriere/data/.m/main-aarch64-default/ref/var/ 713 /usr/local/poudriere/data/.m/main-aarch64-default/*/usr/ 713 /usr/local/poudriere/data/.m/main-aarch64-default/ref/usr/ So 1089 MiBytes or so of the 1140 MiBytes for each such tmpfs is contributed overall by the combination of var/ and usr/ for the example. # poudriere jail -l JAILNAME VERSION OSVERSION ARCH METHOD = TIMESTAMP PATH . . . main-aarch64 15.0-CURRENT aarch64 pkgbase = 2025-02-12 22:49:27 /usr/local/poudriere/jails/main-aarch64 . . . There is more to look into here, in that, historically, larger builders leave behind larger tmpfs usage until the next builder reuse (if any). Having a few of lang/rust , devel/llvm20 , etc. finish, but those builders not starting something new for a notable time, can lead to huge RAM+SWAPSPACE usage for those inactive builders for that time for USE_TMPFS=3Dall without TMPFS_BLACKLIST=3D in use. =3D=3D=3D Mark Millard marklmi at yahoo.com