Index | Thread | Search

From:
Scott Cheloha <scottcheloha@gmail.com>
Subject:
Re: man release , MP build doc
To:
"Sven F." <sven.falempin@gmail.com>
Cc:
tech@openbsd.org
Date:
Tue, 5 Mar 2024 15:28:28 -0600

Download raw body.

Thread
On Mon, Mar 04, 2024 at 02:49:50PM -0500, Sven F. wrote:
> 
> Would it make sense to note/remind
> which step can/should use more than one core/thread ?
> I know the kernel build fine, and the userland too,
> unsure for "make release" and maybe others ?

I don't think this is a good fit for release.8.  Whether it makes
sense to parallelize a part of the build depends on both the
underlying machine and the presence of other users:

- Can the storage keep up?  NFS differs from USB, HDD, SSD, and
  in-memory file systems.  A parallel build may be slower than
  a -j1 if the medium is too slow.

- Is there enough memory on the machine to host multiple jobs
  throughout that stage of the build?

  The answer to this question actually changes over time.  My
  EdgeRouter-4 used to be able to finish a `make -j2 build`.
  Not anymore: LLVM has expanded init a choke point where the
  machine hangs, swapping endlessly.

- The number of logical CPUs varies by machine (obviously).

- Are there other people using the machine?  This is not as
  common as it used to be, but it's plausible.  Maybe you need
  to leave some capacity for your colleagues on your "build
  server" (or whatever).  Maybe there is a daemon that needs
  capacity left spare for surges in demand.

I think there are too many variables to offer such advice in
release.8.

Anybody who is savvy enough to build the system from source will know
about parallel builds.  If they don't, they will probably learn about
them relatively quickly.  At that point, they will need to experiment
with different values to find an optimal choice for a given setup
and context.