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

current build logic is slow #3

Open
rofl0r opened this issue May 7, 2011 · 1 comment
Open

current build logic is slow #3

rofl0r opened this issue May 7, 2011 · 1 comment

Comments

@rofl0r
Copy link

rofl0r commented May 7, 2011

it should create a process which downloads all stuff in parallel (at least 4 parallel downloads, at best as many as needed for saturating the line bandwidth) and as soon as one is finished, launch a build job per cpu core.

i.e. first download finished, launch build script
second download finished: check if a free core is available, if so launch another build job. else wait for buildjob #1 to finish
etc

@rofl0r
Copy link
Author

rofl0r commented Sep 20, 2011

i implemented a new build/package manager. it is available in my fork.
works extraordinarily well.
currently it spawns 16 download threads and 2 build threads, which are launched as soon as a download is completed/all dependencies satisfied. this could be easily changed to a userdefined value (i.e. 6 build threads on a hexacore machine).
once the tool is installed, it can be launched as "butch prefetch stage0 stage1 pkg xorg" to download all packages at once.
another change i made is that the tarballs are all stored in one directory, which will be mounted into the chroot.
the build manager will also retry on download error. on build error of a package it will continue building all non-dependant packages.
it will save the state and continue the build on next invocation with only the packages left. it drove me crazy that i have to rebuild everything again with the old mk build system whenever a build error occured.
"butch" https://github.com/rofl0r/butch can also easily be extended to support sha256 hashes and filesize information for the download, for integrity.
it already supports multiple mirrors (added mirrors for all kernel.org packages, which is currently down)

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

No branches or pull requests

1 participant