RE: speedup build time

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 28 Oct 2024 06:56:52 UTC
Maku Bex <zagazaw2004_at_gmail.com> wrote on
Date: Mon, 28 Oct 2024 00:00:17 UTC :

> 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?

Going in a somewhat different direction than others:

Is that 7hrs unusual or rare for your context? What old version is
building what new version?

For example, it turns out that for building main [so: 15]: building

Thu, 24 Oct 2024
    • git: 34951b0b9e78 - main - swap_pager: move scan_all_shadowed, use iterators Doug Moore

or later from a system based on:

Wed, 23 Oct 2024
    . . .
    • git: 6b9f7133aba4 - main - libc: Add one more check in new fmemopen test Ed Maste

or earlier is going to switch from LLVM 18 to LLVM 19 and
most everything will rebuild, even for META_MODE. (LLVM
19's commits are between those 2 points in the history.)
While I do not use ccache, I would expect such a jump to
similarly have to rebuild most everything even if ccache
is in use but starts with history from before the change
to LLVM 19.

Normally when LLVM rebuilds, that takes the majority of
the overall time, even if most everything in FreeBSD also
rebuilds. This context may be odd enough to justify
distinct time-management techniques vs. when LLVM is
not being upgraded or otherwise mostly rebuilt. There can
be RAM+SWAP configuration tradeoffs.

Overall: more context reporting and information from the
likes of top might help folks formulate specific
suggestions. At this point I've no clue if the above
applies to your context or not.


===
Mark Millard
marklmi at yahoo.com