nixpkgs/pkgs/tools/typesetting
Graham Christensen c2b898da76 treewide: drop -l$NIX_BUILD_CORES
Passing `-l$NIX_BUILD_CORES` improperly limits the overall system load.

For a build machine which is configured to run `$B` builds where each
build gets `total cores / B` cores (`$C`), passing `-l $C` to make will
improperly limit the load to `$C` instead of `$B * $C`.

This effect becomes quite pronounced on machines with 80 cores, with
40 simultaneous builds and a cores limit of 2. On a machine with this
configuration, Nix will run 40 builds and make will limit the overall
system load to approximately 2. A build machine with this many cores
can happily run with a load approaching 80.

A non-solution is to oversubscribe the machine, by picking a larger
`$C`. However, there is no way to divide the number of cores in a way
which fairly subdivides the available cores when `$B` is greater than
1.

There has been exploration of passing a jobserver in to the sandbox,
or sharing a jobserver between all the builds. This is one option, but
relatively complicated and only supports make. Lots of other software
uses its own implementation of `-j` and doesn't support either `-l` or
the Make jobserver.

For the case of an interactive user machine, the user should limit
overall system load using `$B`, `$C`, and optionally systemd's
cpu/network/io limiting features.

Making this change should significantly improve the utilization of our
build farm, and improve the throughput of Hydra.
2022-09-22 16:01:23 -04:00
..
asciidoc asciidoc: fix changelog url 2022-08-31 16:31:29 -04:00
asciidoctor asciidoctor: 2.0.16 -> 2.0.17 2022-01-22 22:12:31 +01:00
asciidoctor-with-extensions treewide: bundlerApp makeWrapper buildInputs -> nativeBuildInputs 2022-08-14 06:41:33 +03:00
asciidoctorj asciidoctorj: 2.5.5 -> 2.5.6 2022-09-20 05:34:45 +00:00
bibclean
biber biber: import patch for Perl 5.36.0 compat 2022-08-16 20:46:28 -03:00
biblatex-check biblatex-check: 2019-11-09 -> 1.0.1 (#157597) 2022-03-23 05:49:23 +01:00
coq2html coq2html: use new SRI hash format 2022-06-02 22:01:41 -03:00
djvu2pdf
docbook2odf
docbook2x
fop treewide: set sourceProvenance for packages containing downloaded jars 2022-06-04 19:47:57 +01:00
git-latexdiff
halibut halibut: 1.2 -> 1.3 2021-12-20 19:27:27 +00:00
hevea hevea: 2.35 -> 2.36 2022-07-31 13:59:30 +00:00
htmldoc htmldoc: fix darwin build (#178725) 2022-07-23 21:16:47 +02:00
kramdown-asciidoc treewide: bundlerApp makeWrapper buildInputs -> nativeBuildInputs 2022-08-14 06:41:33 +03:00
lout
lowdown lowdown: 0.11.1 -> 1.0.0 2022-06-18 20:28:42 +02:00
mmark mmark: 2.2.26 -> 2.2.28 2022-08-30 15:42:48 +00:00
multimarkdown
pdf2djvu pdf2djvu: fix build with Poppler 22.03 2022-03-25 20:44:45 +01:00
pdf2odt resholve: track API update in dependent packages 2022-04-08 21:13:20 -04:00
pdfchain
pdfgrep
pdfsandwich
pdftk treewide: set sourceProvenance for gradle-built packages 2022-06-04 19:48:03 +01:00
psutils
rubber rubber: 1.5.1 -> 1.6.0 (#187738) 2022-08-22 09:23:51 +08:00
satysfi Add Jane Street ocaml packages version 0.15 2022-07-07 00:32:11 -04:00
scdoc scdoc: 1.11.1 -> 1.11.2 2021-11-14 11:11:29 +01:00
sile sile: 0.14.2 → 0.14.3 2022-09-02 00:34:58 +03:00
skribilo treewide: Replace transfig with fig2dev 2022-02-15 10:13:56 +08:00
soupault soupault: 4.0.1 → 4.1.0 2022-08-22 14:46:14 +07:00
sshlatex
tectonic tectonic: 0.8.2 -> 0.9.0 (#170849) 2022-04-29 10:30:06 +00:00
ted
tex treewide: drop -l$NIX_BUILD_CORES 2022-09-22 16:01:23 -04:00
tikzit
xmlroff pangoxsl: remove the package 2022-01-07 17:57:40 +01:00
xmlto