Date: Tue, 18 Feb 2025 12:07:45 +0000 From: Yusuf Yaman <nxjoseph@protonmail.com> To: Mark Millard <marklmi@yahoo.com> Cc: freebsd-pkg@freebsd.org Subject: Re: Poudriere insists on using tmpfs for packages listed in TMPFS_BLACKLIST Message-ID: <abb58314-bc9b-447e-a965-7730047911af@protonmail.com> In-Reply-To: <bece7763-0f81-4be8-b25d-531346bb4650@protonmail.com> References: <2e040ffc-f587-40a2-9ad1-9edf80b1862f@protonmail.com> <78cd193e-e60c-4e65-b75b-3848d582fc9d@protonmail.com> <E66C5DF6-5978-47CB-870F-B737C278D22D@yahoo.com> <bece7763-0f81-4be8-b25d-531346bb4650@protonmail.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Someone on Forums said that "TMPFS_BLACKLIST should have package names / patterns, not port origins."
And I tested it and it indeed worked.
$ mount -v |grep llvm
/poudriere/data/cache/tmp/wrkdirs/llvm17-17.0.6_8.6yv485ye on /poudriere/data/.m/134i386-default/01/wrkdirs (nullfs, local, noatime, nfsv4acls, vnodes: count 148258 )
On 2/15/25 00:47, Yusuf Yaman wrote:
> Thanks for explaining, I got it now.
>
> Have a good one.
>
> On 2/15/25 00:35, Mark Millard wrote:
>
>> On Feb 14, 2025, at 12:37, Yusuf Yaman
>> [<nxjoseph@protonmail.com>](mailto:nxjoseph@protonmail.com)
>> wrote:
>>
>>> root@hale:~ # pkg info -x poudriere
>>> poudriere-3.4.2
>>> root@hale:~ # uname -a
>>> FreeBSD hale.home.arpa 14.2-RELEASE-p1 FreeBSD 14.2-RELEASE-p1 GENERIC amd64
>>>
>>> -------- Forwarded Message -------- Subject: Poudriere insists on using tmpfs for packages listed in TMPFS_BLACKLIST Date: Fri, 14 Feb 2025 20:07:33 +0300 From: Yusuf Yaman
>>> [<nxjoseph@protonmail.com>](mailto:nxjoseph@protonmail.com)
>>> To: FreeBSD Ports ML
>>> [<freebsd-ports@freebsd.org>](mailto:freebsd-ports@freebsd.org)
>>> Hi,
>>>
>>> I am having a problem where Poudriere (even -devel) does insist on using tmpfs for big packages that i listed in TMPFS_BLACKLIST list in configuration, also TMPFS_BLACKLIST_DIR is set. I am using ZFS. It happens on at least lang/rust and devel/llvm15.
>>
>> The likes of lang/rust and devel/llvm* use large amounts of file
>> system space (compared to, say, just 2 GiBytes) it is the larger
>> areas that are redirected into where you have TMPFS_BLACKLIST_DIR
>> point, avoiding that also being a tmpfs area. These can be like
>> 17+ GiByte, 25+ GiByte, or more for just one builder in the
>> TMPFS_BLACKLIST_DIR area. These can be larger than the RAM that
>> some might have, making having a huge RAM+SWAP be important
>> absent the TMPFS_BLACKLIST entry, especially if multiple such
>> builders happen to run in parallel. (There is also a hook for
>> avoiding any of a list of packages from building in parallel.)
>>
>> TMPFS_BLACKLIST is not intended to eliminate all tmpfs use by a
>> a builder, just what most likely potentially grows to be
>> huge/massive compared to normal: wrkdirs
>>
>> For reference:
>>
>> # grep -r TMPFS_BLACKLIST_TMPDIR /usr/local/share/poudriere/
>> /usr/local/share/poudriere/common.sh: case "${TMPFS_BLACKLIST_TMPDIR:+set}" in
>> /usr/local/share/poudriere/common.sh: if [ -d "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs" ] &&
>> /usr/local/share/poudriere/common.sh: ! rm -rf "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs/"*; then
>> /usr/local/share/poudriere/common.sh: "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs"/* || :
>> /usr/local/share/poudriere/common.sh: rm -rf "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs"/* ||
>> /usr/local/share/poudriere/common.sh: mkdir -p "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs"
>> /usr/local/share/poudriere/common.sh: TMPDIR="${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs" \
>>
>> An example of normal/small is ports-mgmt/portmaster ends up using
>> under 2.5 GiBytes of tmpfs for USE_TMPFS=all .
>>
>>> Thanks in advance.
>>>
>>> yusuf@hale ~ % mount -v | grep llvm
>>> yusuf@hale ~ % mount -v | grep tmpfs
>>> tmpfs on /poudriere/data/.m/142x86-default/ref/.p (tmpfs, local, vnodes: count 36 )
>>> tmpfs on /poudriere/data/.m/142x86-default/ref/wrkdirs (tmpfs, local, vnodes: count 2 )
>>> tmpfs on /poudriere/data/.m/142x86-default/ref/var/db/ports (tmpfs, local, vnodes: count 4 )
>>> tmpfs on /poudriere/data/.m/142x86-default/01/.p (tmpfs, local, vnodes: count 7 )
>>> tmpfs on /poudriere/data/.m/142x86-default/01/wrkdirs (tmpfs, local, vnodes: count 135024 )
>>> yusuf@hale ~ %
>>
>> I'll note that the (unused):
>>
>> /poudriere/data/.m/142x86-default/01/wrkdirs
>>
>> is still present when:
>>
>> ${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs
>>
>> is used instead. The:
>>
>> /poudriere/data/.m/142x86-default/01/wrkdirs
>>
>> is not deleted and recreated for each builder
>> to use slot 01 , just avoided for TMPFS_BLACKLIST
>> usage and emptied before starting a new builder
>> in the slot.
>>
>>> Queued: 1 Inspected: 0 Ignored: 0 Built: 0 Failed: 0 Skipped: 0 Fetched: 0 Remaining: 1
>>> ID TOTAL ORIGIN PKGNAME PHASE TIME TMPFS CPU% MEM%
>>> [01] 00:04:01 devel/llvm15@default | llvm15-15.0.7_10 build 00:03:03 1.55 GiB 99.9% 5%
>>
>> 1.55 GiB indicates that the large amount of file system space was
>> not placed in TMPFS. The 1.55 GiB appears to have been in/under:
>> /poudriere/data/.m/142x86-default/01/.p instead.
>>
>> ===
>> Mark Millard
>> marklmi at yahoo.com
[-- Attachment #2 --]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Someone on Forums said that "TMPFS_BLACKLIST should have package
names / patterns, not port origins."<br>
<br>
And I tested it and it indeed worked.<br>
</p>
<pre class="bbCodeCode" dir="ltr" data-xf-init="code-block"
data-lang=""><code>$ mount -v |grep llvm
/poudriere/data/cache/tmp/wrkdirs/llvm17-17.0.6_8.6yv485ye on /poudriere/data/.m/134i386-default/01/wrkdirs (nullfs, local, noatime, nfsv4acls, vnodes: count 148258 )</code></pre>
<div class="moz-cite-prefix">On 2/15/25 00:47, Yusuf Yaman wrote:<br>
</div>
<blockquote type="cite"
cite="mid:bece7763-0f81-4be8-b25d-531346bb4650@protonmail.com">
<pre wrap="" class="moz-quote-pre">Thanks for explaining, I got it now.
Have a good one.
On 2/15/25 00:35, Mark Millard wrote:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">On Feb 14, 2025, at 12:37, Yusuf Yaman <a class="moz-txt-link-rfc2396E" href="mailto:nxjoseph@protonmail.com"><nxjoseph@protonmail.com></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">root@hale:~ # pkg info -x poudriere
poudriere-3.4.2
root@hale:~ # uname -a
FreeBSD hale.home.arpa 14.2-RELEASE-p1 FreeBSD 14.2-RELEASE-p1 GENERIC amd64
-------- Forwarded Message -------- Subject: Poudriere insists on using tmpfs for packages listed in TMPFS_BLACKLIST Date: Fri, 14 Feb 2025 20:07:33 +0300 From: Yusuf Yaman <a class="moz-txt-link-rfc2396E" href="mailto:nxjoseph@protonmail.com"><nxjoseph@protonmail.com></a> To: FreeBSD Ports ML <a class="moz-txt-link-rfc2396E" href="mailto:freebsd-ports@freebsd.org"><freebsd-ports@freebsd.org></a>
Hi,
I am having a problem where Poudriere (even -devel) does insist on using tmpfs for big packages that i listed in TMPFS_BLACKLIST list in configuration, also TMPFS_BLACKLIST_DIR is set. I am using ZFS. It happens on at least lang/rust and devel/llvm15.
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">The likes of lang/rust and devel/llvm* use large amounts of file
system space (compared to, say, just 2 GiBytes) it is the larger
areas that are redirected into where you have TMPFS_BLACKLIST_DIR
point, avoiding that also being a tmpfs area. These can be like
17+ GiByte, 25+ GiByte, or more for just one builder in the
TMPFS_BLACKLIST_DIR area. These can be larger than the RAM that
some might have, making having a huge RAM+SWAP be important
absent the TMPFS_BLACKLIST entry, especially if multiple such
builders happen to run in parallel. (There is also a hook for
avoiding any of a list of packages from building in parallel.)
TMPFS_BLACKLIST is not intended to eliminate all tmpfs use by a
a builder, just what most likely potentially grows to be
huge/massive compared to normal: wrkdirs
For reference:
# grep -r TMPFS_BLACKLIST_TMPDIR /usr/local/share/poudriere/
/usr/local/share/poudriere/common.sh: case "${TMPFS_BLACKLIST_TMPDIR:+set}" in
/usr/local/share/poudriere/common.sh: if [ -d "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs" ] &&
/usr/local/share/poudriere/common.sh: ! rm -rf "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs/"*; then
/usr/local/share/poudriere/common.sh: "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs"/* || :
/usr/local/share/poudriere/common.sh: rm -rf "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs"/* ||
/usr/local/share/poudriere/common.sh: mkdir -p "${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs"
/usr/local/share/poudriere/common.sh: TMPDIR="${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs" \
An example of normal/small is ports-mgmt/portmaster ends up using
under 2.5 GiBytes of tmpfs for USE_TMPFS=all .
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Thanks in advance.
yusuf@hale ~ % mount -v | grep llvm
yusuf@hale ~ % mount -v | grep tmpfs
tmpfs on /poudriere/data/.m/142x86-default/ref/.p (tmpfs, local, vnodes: count 36 )
tmpfs on /poudriere/data/.m/142x86-default/ref/wrkdirs (tmpfs, local, vnodes: count 2 )
tmpfs on /poudriere/data/.m/142x86-default/ref/var/db/ports (tmpfs, local, vnodes: count 4 )
tmpfs on /poudriere/data/.m/142x86-default/01/.p (tmpfs, local, vnodes: count 7 )
tmpfs on /poudriere/data/.m/142x86-default/01/wrkdirs (tmpfs, local, vnodes: count 135024 )
yusuf@hale ~ %
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">I'll note that the (unused):
/poudriere/data/.m/142x86-default/01/wrkdirs
is still present when:
${TMPFS_BLACKLIST_TMPDIR:?}/wrkdirs
is used instead. The:
/poudriere/data/.m/142x86-default/01/wrkdirs
is not deleted and recreated for each builder
to use slot 01 , just avoided for TMPFS_BLACKLIST
usage and emptied before starting a new builder
in the slot.
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Queued: 1 Inspected: 0 Ignored: 0 Built: 0 Failed: 0 Skipped: 0 Fetched: 0 Remaining: 1
ID TOTAL ORIGIN PKGNAME PHASE TIME TMPFS CPU% MEM%
[01] 00:04:01 devel/llvm15@default | llvm15-15.0.7_10 build 00:03:03 1.55 GiB 99.9% 5%
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">1.55 GiB indicates that the large amount of file system space was
not placed in TMPFS. The 1.55 GiB appears to have been in/under:
/poudriere/data/.m/142x86-default/01/.p instead.
===
Mark Millard
marklmi at yahoo.com
</pre>
</blockquote>
</blockquote>
</body>
</html>
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?abb58314-bc9b-447e-a965-7730047911af>
