Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linux: run make install in parallel #75696

Merged
merged 1 commit into from Dec 19, 2019

Conversation

lheckemann
Copy link
Member

Motivation for this change

This improves build times significantly, from 20min to 9min on the aarch64 community box.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

This improves build times significantly, from 20min to 9min on the
aarch64 community box.
@ofborg ofborg bot requested review from thoughtpolice and teto December 15, 2019 15:28
@FRidh FRidh added this to Needs review in Staging Dec 15, 2019
Staging automation moved this from Needs review to Ready Dec 15, 2019
@thoughtpolice
Copy link
Member

thoughtpolice commented Dec 15, 2019

Should this actually go to staging? For ordinary individual kernel bumps I'm normally fine with going directly to master, but this is every kernel package + every dependency...

Note this isn't a hard rejection; just a thought.

@lheckemann
Copy link
Member Author

I don't think so, since it's only the kernels and modules that will be rebuilt.

@matthewbauer
Copy link
Member

This seems weird! Is Linux building things in the install phase? I always assumed that make install would just do install / cp so that cores wouldn't make a difference, and the bottleneck would be IO.

If this is a common experience, perhaps we should set this everywhere for make install when enableParallelBuilding is set (or add an enableParallelInstalling option).

@alyssais
Copy link
Member

alyssais commented Dec 16, 2019 via email

@alyssais
Copy link
Member

alyssais commented Dec 16, 2019 via email

@FRidh FRidh changed the base branch from master to staging December 19, 2019 08:24
@FRidh FRidh merged commit a69064e into NixOS:staging Dec 19, 2019
Staging automation moved this from Ready to Done Dec 19, 2019
@lheckemann lheckemann deleted the linux-install-parallel branch December 19, 2019 15:42
@lheckemann
Copy link
Member Author

Yes, it builds at least dtbs, and also does some compression e.g. of kernel modules. Running 64 xz's in parallel is going to be faster than running them in series :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Staging
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

5 participants