From nobody Mon Oct 28 10:00:54 2024 X-Original-To: freebsd-current@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 4XcTSS1HpCz5b8LC for ; Mon, 28 Oct 2024 10:01:44 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Received: from mailgate.Leidinger.net (bastille.leidinger.net [89.238.82.207]) (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 "mailgate.leidinger.net", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XcTSR4sTXz4F1Q for ; Mon, 28 Oct 2024 10:01:43 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Authentication-Results: mx1.freebsd.org; none Received: from remote (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: alexander@leidinger.net) by outgoing.leidinger.net (Postfix) with ESMTPSA id 7F8921445A; Mon, 28 Oct 2024 11:00:55 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leidinger.net; s=outgoing-alex; t=1730109695; 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=l4FdX0C+UvbcTzkG0UYWeXFgDIJ4BHBqU0phkIx3XT4=; b=o1iXQPT4q5/9Fv6itIjRYHX4Mo23YhANbUHOv/Sd2JkadDATpDAT/guSa2u7z3Yxwbiznr CF1xHHSp8yIAkTq1ciQU6y9Cqd8eHXkpMmZ8EKNTfDKTKgrNLyn07tn5YJohRovQ15TwZs 6/8k16d+VdTRfIZuU1r7RFLXtgvphUfXdMrKuxIJknnUMCkqqhnNeSemXpLmTc9xCupNZq j26RLvz74UjpLGula2l/1iQg5dQADo8pJMEOxdBTax3/53nvyJLZstcr5ORan721xmI2xg 8HK3Jq7rjdrhyY31m0CbmGohyoo+1LxzpGfrl3Xvkq7nagtM2VksS0K2mqeE2A== From: Alexander Leidinger To: Maku Bex , "'David Wolfskill'" CC: Date: Mon, 28 Oct 2024 11:00:54 +0100 Message-ID: <192d2702590.2805.fa4b1493b064008fe79f0f905b8e5741@Leidinger.net> In-Reply-To: <015001db28db$690b03c0$3b210b40$@gmail.com> References: <012d01db28cc$5fc66ac0$1f534040$@gmail.com> <015001db28db$690b03c0$3b210b40$@gmail.com> Subject: RE: speedup build time List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="192d2924626520e28056d47bab" 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:34240, ipnet:89.238.64.0/18, country:DE] X-Rspamd-Queue-Id: 4XcTSR4sTXz4F1Q X-Spamd-Bar: ---- This is a multi-part message in MIME format. --192d2924626520e28056d47bab Content-Type: text/plain; format=flowed; charset="us-ascii" Content-Transfer-Encoding: 8bit Hi, Try (add) src.conf: WITHOUT_CLEAN=YES WITH_MALLOC_PRODUCTION=YES WITHOUT_LLVM_ASSERTIONS=yes This may only give a result in subsequent builds, not on the first build or when a lot or something essential has changed. Note (just in case...) the make jobs number you use is not used for the world, only for ports. For the world/kernel build it's really the -j option. Bye, Alexander. -- Send from a mobile device, please forgive brevity and misspellings. Am 28. Oktober 2024 02:50:38 schrieb "Maku Bex" : > Hi David, > > * What (if any) "max_jobs" (make's "-j" parameter) are you using? 16 > > * For a 16T system, I expect I would start with a value of around 28. > Shouldn't this number be equal to $(nproc --all)? > > * Are you using make's "meta" mode? I do. Yes. > > * Can you get more memory for that system? Yes, I can bump it to 32GB. This > is a Dell OptiPlex 7080 Micro, and not sure if it is worth upgrading the > other components. > > If your laptop can complete the builds in such a small amount of time, then > there's either something wrong with my machine or the config files. Oh! The > build just finished as I was typing this reply and...(not for the weak hearts): > > -------------------------------------------------------------- >>>> World built in 32437 seconds, ncpu: 16 > -------------------------------------------------------------- > > Here are the contents of: > > make.conf: > > CPUTYPE?=icelake-client > CFLAGS= -O2 -pipe -march=${CPUTYPE} > #CXXFLAGS=${CFLAGS} > MACHINE_CPU+= avx512 avx2 avx sse42 sse41 ssse3 sse3 f16c > MAKE_JOBS_NUMBER= 16 > BATCH=yes > WRKDIRPREFIX=/var/ports/tmp > CCACHE_DIR=/var/ccache/tmp > > OPTIONS_UNSET+= QT5 QT6 CUPS VESA SCFB TWM XCONSOLE XCLOCK GNOME KDE EXAMPLES \ > DEBUG ASPELL NLS DOCS > ------------------------------------------------------------------------------- > src-env.conf: > > WITH_META_MODE=yes > WITH_CCACHE_BUILD=yes > #WITH_DIRDEPS_BUILD=yes < #WITH_DIRDEPS_CACHE=yes < > WITHOUT_TALK=yes > WITHOUT_TELNET=yes > WITHOUT_TFTP=yes > WITHOUT_IPFILTER=yes > WITHOUT_IPFW=yes > WITHOUT_FLOPPY=yes > WITHOUT_GAMES=yes > WITHOUT_BLUETOOTH=yes > WITHOUT_EE=yes > WITHOUT_FREEBSD_UPDATE=yes > WITHOUT_GPIO=yes > WITHOUT_MAIL=yes > WITHOUT_TESTS=yes > WITHOUT_AMD=yes > WITHOUT_CLANG=yes > WITHOUT_DEBUG_FILES=yes > WITHOUT_EXAMPLES=yes > WITHOUT_HYPERV=yes > > Happy Hacking, > > -----BEGIN PGP PUBLIC KEY BLOCK----- > > mJMEZlPMfxMFK4EEACMEIwQA/hAHZ4KNJLw5eRl6DAOyzkuHQ7PaK2hTYLVIPoxC > sCe8lB/hzET5KxMW9GXgFgPaSP7Es+ul6ajyq8pr9DeGnXUAFymi7GoT1kLIqgrn > X+rDAwMk9JNEElTmVNvgKWv/G+pSg2rAQ8sIw6smgckA0CaX1JdcNavrHDgKMO4u > Duo44Te0BkpPTUlTTYjbBBMTCgBBFiEENyUvu5bQVBXM019e8anbed+sQ8YFAmZT > zH8CGwMFCQHnaREFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ8anbed+s > Q8Y5BgIHcX19jz0KP89uTmqvLGZcKsITDJKweAnccCZRS8hvXT8JBwR1LyxsBBKF > ++eN2JJasZLo+s6sy7pDMN+9z4Gkdy0CCOj+arfLdvajfzdK4QeKpINfpa2SkQD1 > CP98lvfI/luIbetUVW+qNDkzT1jZphYuzgsCaofTGCIQpFk19q22ZcZquJcEZlPM > fxIFK4EEACMEIwQANy4VvpnTHneZipCPwzVJnMN82coCudRAiL2i2m3GPA06lRtU > njcn9r9Sm26A0sajwc3kQw/ekWrHXpXV0aL076cAUW9GKYDljIHVlr76wgHbLt6q > BX5VkA6xS0cq3skbMEI0QpIqIK81Yf0z8wfyF5uqAgNPUpY4nHMV9S856JB2VDQD > AQoJiMEEGBMKACYWIQQ3JS+7ltBUFczTX17xqdt536xDxgUCZlPMfwIbDAUJAedp > EQAKCRDxqdt536xDxjIuAgjacZCttPWpKGfMbnNWePz6t9rcMUb496tSWfKRActr > Rco8lSaDNTVohT/6hLZ5wUX5NFUqTb+kOXJcUGHGbnw2KQIJAQu1m9zEP5XdWmFi > SvGg1NHW2kzqAvFsG37flbwrGRu5fmTnS/LZ/oPzOCuwU6F+o1q0E7gLwFwnzD93 > riKeabdd > =iCV+ > -----END PGP PUBLIC KEY BLOCK----- > > -----Original Message----- > From: David Wolfskill > Sent: Sunday, October 27, 2024 19:50 > To: Maku Bex > Cc: freebsd-current@freebsd.org > Subject: Re: speedup build time > > On Sun, Oct 27, 2024 at 07:00:17PM -0500, Maku Bex wrote: >> ... >> I'm trying to figure out a way to decrease build time of -CURRENT >> and/or -STABLE but it is not working out that well. >> I've tried the following: >> * Tuning /etc/make.conf and /etc/src-env.conf based on their manpages >> (make.conf(5), make(1), src.conf(5)). >> * Removed certain options from GENERIC, which reduced the kernel build >> time significantly. >> >> Hardware specs: >> * I7-10700T 8C/16T @2.0GHz. >> * 16GB RAM. >> * 256GB NVMe. >> >> Currently, 'make buildworld' has been running for 7hrs and counting. >> Is there anything else I can do to speed up world build? >> .... > > First, some questions -- whether or not you wish to share the answers, I > believe that answering the questions (if only for yourself) may be > helpful: > > * What (if any) "max_jobs" (make's "-j" parameter) are you using? For a > 16T system, I expect I would start with a value of around 28. > > * Are you using make's "meta" mode? I do. > > * Can you get more memory for that system? > > Some context: I am in the (definitely peculiar; perhaps unfortunate) habit > of "tracking" FreeBSD head and latest stable branch on a small collection > of machines ... daily. One of those is the laptop that I use for normal > "desktop" stuff, as well as accessing all other machines on the planet that > I access. (Oh: I also update ports daily, too -- though I let my dedicated > "build machine" handle chromium.) > > That laptop has 4C/8T & 32 GB RAM. This morning, it took: > > * 17:46 for stable/14-n269310-bbd018d0aaaf -> stable/14-n269315-b21c677ed28a > (0:02 to update /usr/src; 17:44 to build; 0:00 to delete old libraries) > > * 24:03 for main-n273250-9d585fc395c3 -> main-n273270-cadb71e4b013 > (0:03 to update /usr/src; 23:59 to build; 0:01 to delete old libraries) > > * Updating ports (other than www/chromium) took 1:52. > > (Those times are "mm:ss" in case it wasn't obvious.) > > The above is fairly classic "sample size of 1" -- it's not necessarily > representative. Folks who are "sufficiently interested" are welcome to > trawl through the logs at > https://www.catwhisker.org/~david/FreeBSD/history/ to get a rough idea of > how long it is before the "uname" output from a successful build is logged; > there is probably some correlation to build times. > > I also recently acquired a replacement "build machine": 64C/128T; 256 GB > RAM; a fistful of SATA SSDs (build/boot on one; the rest is a poudriere > play area in a zraid). That's a wee bit faster than the laptop. :-) > > Peace, > david > -- > David H. Wolfskill david@catwhisker.org > It has been said that history repeats itself. This is perhaps not quite > correct; it merely rhymes. -- Theodor Reik > > See https://www.catwhisker.org/~david/publickey.gpg for my public key. --192d2924626520e28056d47bab Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Hi, 

Try (add)
src.conf:
WITHO= UT_CLEAN=3DYES
WITH_MALLOC_PRODUCTION=3DYES
WITHOUT_LLVM_ASSERTIONS=3Dyes

This may only give a result in subsequent builds, not = on the first build or when a lot or something essential has changed. <= /div>

Note (just in case...) t= he make jobs number you use is not used for the world, only for ports. For = the world/kernel build it's really the -j option. 

Bye, 
Alexander= . 

-- 
Send from a mobile device, please forgive brevity and misspellings.

Am 28. Oktober 2024 02:50:38 schrieb "Maku Bex" <zagaz= aw2004@gmail.com>:

Hi David,

* What (if any) "max_jobs" (make's "-j" parameter) are yo= u using? 16

* For a 16T system, I expect I would start with a value o= f around 28. Shouldn't this number be equal to $(nproc --all)?

* Are you using make's "meta" mode?  I do. Yes.

* Can you get more memory for that system? Yes, I can bum= p it to 32GB. This is a Dell OptiPlex 7080 Micro, and not sure if it is wor= th upgrading the other components.

If your laptop can complete the builds in such a small am= ount of time, then there's either something wrong with my machine or the co= nfig files. Oh! The build just finished as I was typing this reply and...(n= ot for the weak hearts):

---------------------------------------------------------= -----
World built in 32437 seconds, ncpu: 16
---------------------------------------------------------= -----  

Here are the contents of:

make.conf:

CPUTYPE?=3Dicelake-client
CFLAGS=3D -O2 -pipe -march=3D${CPUTYPE}
#CXXFLAGS=3D${CFLAGS}
MACHINE_CPU+=3D avx512 avx2 avx sse42 sse41 ssse3 sse3 f1= 6c
MAKE_JOBS_NUMBER=3D 16
BATCH=3Dyes
WRKDIRPREFIX=3D/var/ports/tmp
CCACHE_DIR=3D/var/ccache/tmp

OPTIONS_UNSET+=3D QT5 QT6 CUPS VESA SCFB TWM XCONSOLE XCL= OCK GNOME KDE EXAMPLES \
                D= EBUG ASPELL NLS DOCS
---------------------------------------------------------= ----------------------
src-env.conf:

WITH_META_MODE=3Dyes
WITH_CCACHE_BUILD=3Dyes
#WITH_DIRDEPS_BUILD=3Dyes <<fails
#WITH_DIRDEPS_CACHE=3Dyes <<fails 

WITHOUT_TALK=3Dyes
WITHOUT_TELNET=3Dyes
WITHOUT_TFTP=3Dyes
WITHOUT_IPFILTER=3Dyes
WITHOUT_IPFW=3Dyes
WITHOUT_FLOPPY=3Dyes
WITHOUT_GAMES=3Dyes
WITHOUT_BLUETOOTH=3Dyes
WITHOUT_EE=3Dyes
WITHOUT_FREEBSD_UPDATE=3Dyes
WITHOUT_GPIO=3Dyes
WITHOUT_MAIL=3Dyes
WITHOUT_TESTS=3Dyes
WITHOUT_AMD=3Dyes
WITHOUT_CLANG=3Dyes
WITHOUT_DEBUG_FILES=3Dyes
WITHOUT_EXAMPLES=3Dyes
WITHOUT_HYPERV=3Dyes

Happy Hacking,

-----BEGIN PGP PUBLIC KEY BLOCK-----

mJMEZlPMfxMFK4EEACMEIwQA/hAHZ4KNJLw5eRl6DAOyzkuHQ7PaK2hTY= LVIPoxC
sCe8lB/hzET5KxMW9GXgFgPaSP7Es+ul6ajyq8pr9DeGnXUAFymi7GoT1= kLIqgrn
X+rDAwMk9JNEElTmVNvgKWv/G+pSg2rAQ8sIw6smgckA0CaX1JdcNavrH= DgKMO4u
Duo44Te0BkpPTUlTTYjbBBMTCgBBFiEENyUvu5bQVBXM019e8anbed+sQ= 8YFAmZT
zH8CGwMFCQHnaREFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ8= anbed+s
Q8Y5BgIHcX19jz0KP89uTmqvLGZcKsITDJKweAnccCZRS8hvXT8JBwR1L= yxsBBKF
++eN2JJasZLo+s6sy7pDMN+9z4Gkdy0CCOj+arfLdvajfzdK4QeKpINfp= a2SkQD1
CP98lvfI/luIbetUVW+qNDkzT1jZphYuzgsCaofTGCIQpFk19q22ZcZqu= JcEZlPM
fxIFK4EEACMEIwQANy4VvpnTHneZipCPwzVJnMN82coCudRAiL2i2m3GP= A06lRtU
njcn9r9Sm26A0sajwc3kQw/ekWrHXpXV0aL076cAUW9GKYDljIHVlr76w= gHbLt6q
BX5VkA6xS0cq3skbMEI0QpIqIK81Yf0z8wfyF5uqAgNPUpY4nHMV9S856= JB2VDQD
AQoJiMEEGBMKACYWIQQ3JS+7ltBUFczTX17xqdt536xDxgUCZlPMfwIbD= AUJAedp
EQAKCRDxqdt536xDxjIuAgjacZCttPWpKGfMbnNWePz6t9rcMUb496tSW= fKRActr
Rco8lSaDNTVohT/6hLZ5wUX5NFUqTb+kOXJcUGHGbnw2KQIJAQu1m9zEP= 5XdWmFi
SvGg1NHW2kzqAvFsG37flbwrGRu5fmTnS/LZ/oPzOCuwU6F+o1q0E7gLw= FwnzD93
riKeabdd
=3DiCV+
-----END PGP PUBLIC KEY BLOCK-----

-----Original Message-----
From: David Wolfskill <david@catwhisker.org> <= /div>
Sent: Sunday, October 27, 2024 19:50
To: Maku Bex <zagazaw2004@gmail.com>
Cc: freebsd-current@freebsd.org
Subject: Re: speedup build time

On Sun, Oct 27, 2024 at 07:00:17PM -0500, Maku Bex wrote:=
...
I'm trying to figure out a way to decrease build time of = -CURRENT 
and/or -STABLE but it is not working out that well.
I've tried the following:
*=09Tuning /etc/make.conf and /etc/src-env.conf based on = their manpages
(make.conf(5), make(1), src.conf(5)).
*=09Removed certain options from GENERIC, which reduced t= he kernel build
time significantly. 

Hardware specs:
*=09I7-10700T 8C/16T @2.0GHz.
*=0916GB RAM.
*=09256GB NVMe.

Currently, 'make buildworld' has been running for 7hrs an= d counting. 
Is there anything else I can do to speed up world build?<= /div>
....

First, some questions -- whether or not you wish to share= the answers, I believe that answering the questions (if only for yourself)= may be
helpful:

* What (if any) "max_jobs" (make's "-j" parameter) are yo= u using?  For a
  16T system, I expect I would start with a value of= around 28.

* Are you using make's "meta" mode?  I do.

* Can you get more memory for that system?

Some context:  I am in the (definitely peculiar; per= haps unfortunate) habit of "tracking" FreeBSD head and latest stable branch= on a small collection of machines ... daily.  One of those is the lap= top that I use for normal "desktop" stuff, as well as accessing all other m= achines on the planet that I access.  (Oh: I also update ports daily, = too -- though I let my dedicated "build machine" handle chromium.)

That laptop has 4C/8T & 32 GB RAM.  This morning= , it took:

* 17:46 for stable/14-n269310-bbd018d0aaaf -> stable/1= 4-n269315-b21c677ed28a
  (0:02 to update /usr/src; 17:44 to build; 0:00 to = delete old libraries)

* 24:03 for main-n273250-9d585fc395c3 -> main-n273270-= cadb71e4b013
  (0:03 to update /usr/src; 23:59 to build; 0:01 to = delete old libraries)

* Updating ports (other than www/chromium) took 1:52.

(Those times are "mm:ss" in case it wasn't obvious.)

The above is fairly classic "sample size of 1" -- it's no= t necessarily representative.  Folks who are "sufficiently interested"= are welcome to trawl through the logs at https://www.catwhisker.org/~david= /FreeBSD/history/ to get a rough idea of how long it is before the "uname" = output from a successful build is logged; there is probably some correlatio= n to build times.

I also recently acquired a replacement "build machine": 6= 4C/128T; 256 GB RAM; a fistful of SATA SSDs (build/boot on one; the rest is= a poudriere play area in a zraid).  That's a wee bit faster than the = laptop. :-)

Peace,
david
-- 
David H. Wolfskill           &nb= sp;                  david@cat= whisker.org
It has been said that history repeats itself. This is per= haps not quite correct; it merely rhymes. -- Theodor Reik

See https://www.catwhisker.org/~david/publickey.gpg for m= y public key.

--192d2924626520e28056d47bab--