nixpkgs/pkgs/development/embedded
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
..
arduino arduino-cli: 0.25.1 -> 0.27.1 2022-09-17 13:32:44 +02:00
avrdude avrdude: 6.4 -> 7.0 2022-05-26 22:50:33 +02:00
blackmagic treewide: drop -l$NIX_BUILD_CORES 2022-09-22 16:01:23 -04:00
bossa bossa: switch to fetchFromGitHub 2022-03-16 00:45:53 +01:00
cc-tool
easypdkprog
elf2uf2-rs elf2uf2-rs: unstable-2021-12-12 -> 1.3.7 2022-09-03 10:23:46 -07:00
fpga ecpdap: 0.1.7 -> 0.1.8 2022-08-01 13:44:45 +00:00
gputils gputils: 1.5.0-1 -> 1.5.2 2022-02-12 20:51:26 -08:00
jtag-remote-server jtag-remote-server: init at unstable-2022-06-09 2022-07-11 09:07:46 +08:00
nmrpflash nmrpflash: 0.9.16 -> 0.9.18.2 2022-07-29 02:26:22 +00:00
openocd openocd: fix build with gcc 11 2022-04-30 10:06:39 +02:00
orbuculum orbuculum: init at 2.0.0 2022-09-03 11:30:19 -07:00
platformio platformio: relax wsproto constraint 2022-09-19 10:37:50 +02:00
pyocd pyocd: init at 0.34.1 2022-08-17 13:00:54 +02:00
rshell rshell: one item er line 2022-01-04 23:11:37 +01:00
stm32 stm32cubemx: 6.5.0 -> 6.6.1 2022-08-02 03:56:42 +00:00
svdtools svdtools: 0.2.5 -> 0.2.6 2022-08-21 08:07:33 -07:00
teensy-loader-cli
tytools tytools: 0.9.3 -> 0.9.7 2022-02-13 11:19:36 +00:00
uisp
xc3sprog treewide: fix fallout from 'cmake/setup-hook.sh: Don't skip build-RPATH' 2022-07-12 18:25:19 +03:00