Re: speedup build time

From: Nuno Teixeira <eduardo_at_freebsd.org>
Date: Mon, 28 Oct 2024 13:15:32 UTC
Hello,

In what way could WITHOUT_LLVM_ASSERTIONS speed up builds?

Thanks,

Alexander Leidinger <Alexander@leidinger.net> escreveu (segunda, 28/10/2024
à(s) 10:02):

> 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" <zagazaw2004@gmail.com>:
>
> 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 <<fails
>> #WITH_DIRDEPS_CACHE=yes <<fails
>>
>> 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 <david@catwhisker.org>
>> 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:
>>> * 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.
>>
>
>

-- 
Nuno Teixeira
FreeBSD UNIX:  <eduardo@FreeBSD.org>   Web:  https://FreeBSD.org