tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: continuing excessive parallelism building go



* On 2026-05-08 at 15:49 BST, Greg Troxel wrote:

Jonathan Perkin <jperkin%pkgsrc.org@localhost> writes:

Why does it need MAKE_JOBS_SAFE=no?  Notably this will cause bob
builds that use the dynamic scheduler to be done at -j1.  I realise
this is a "I don't care" for most people, but it still seems wrong to
be setting that variable yet still expecting to use parallel jobs, and
I don't think it's necessary or even correct.

I'm not really sure what you mean "done at -j1".  Do you mean bob's
scheduler will expect concurrency of 1, but it will actually be
MAKE_JOBS, and thus be higher than expectations, which is wrong?  If so,
I see your point.

If you use bob's dynamic scheduler then it will assign a MAKE_JOBS setting for each build based on its historical usage, so bigger builds will automatically get higher MAKE_JOBS, smaller or builds that have shown to not benefit from parallel builds will get lower, etc.

If a package is marked as MAKE_JOBS_SAFE=no then it will be assigned MAKE_JOBS=1 regardless.

 - don't set MAKE_JOBS_SAFE=no, after verifying by code reading that
   there won't actually be any use of -jN.  Or if there is, set
   GOMAXPROCS=1 for that package (always, because the -j mechanism has
   the token).  Consider that passing GOMAXPROCS=1 to 'go build' is how
   you spell -jN on the command line, and call it right.

and having written that I think the 2nd option is the right answer for
now.

Yes, I think just remove MAKE_JOBS_SAFE=no.

Thanks,

--
Jonathan Perkin                    pkgsrc.smartos.org
Open Source Complete Cloud   www.tritondatacenter.com


Home | Main Index | Thread Index | Old Index