In >=portage-2.2_rc2 there are a few new emerge options that many Gentoo users will probably be interested in:
--jobs JOBS Specifies the number of packages to build simultaneously. Also see the related --load-average option. --keep-going Continue as much as possible after an error. When an error occurs, dependencies are recalculated for remaining packages and any with unsatisfied dependencies are automatically dropped. Also see the related --skipfirst option. --load-average LOAD Specifies that no new builds should be started if there are other builds running and the load average is at least LOAD (a floating-point number). This option is recommended for use in combination with --jobs in order to avoid excess load. See make(1) for information about analogous options that should be configured via MAKEOPTS in make.conf(5).
Here is some sample parallel build output from a catalyst stage2 build, with emerge's new --jobs option enabled:
>>> Building (1 of 10) sys-devel/gettext-0.17 for / >>> Building (2 of 10) sys-libs/zlib-1.2.3-r1 for / >>> Building (3 of 10) virtual/libintl-0 for / >>> Building (4 of 10) dev-util/unifdef-1.20 for / >>> Installing virtual/libintl-0 to / >>> Installing dev-util/unifdef-1.20 to / >>> Building (5 of 10) sys-kernel/linux-headers-2.6.23-r3 for / >>> Installing sys-libs/zlib-1.2.3-r1 to / >>> Jobs: 3 of 10 complete, 2 running Load avg: 3.44, 1.46, 0.69
http://planet.gentoo.org/developers/htsrv/trackback.php/1543
The culprit is cc1plus ... I've seen memory usages of up to 450M (wow) ... is that normal or is something wrong with gcc4.1.2 on amd64?
Is there a package.noparallel file or other way to tell portage not to parallel-emerge particular packages?
Is it possible to do something for memory usage similar to what is done with load average -- that is, a switch to limit it, not starting more jobs if usage is greater than X megs/gigs, say?
Are in rc3 still the issues with preserved-rebuild described by Diego in his blog?
- would it be possible to have a more verbose output when running with --jobs enabled ? Specially if there is a build failure, it would be nice to have the error message.
- would it be possible that portage organizes the "build-qeue" so that you don
I
One of them is likely to cause the load average to increase to a point where additional jobs will not be scheduled. If for some reason they still happen to get scheduled simultaneously, having a --load-average setting in MAKEOPTS will cause make to react to the current load conditions and prevent your system from overloading itself too much.
[toolchain]
class = portage.sets.shell.CommandOutputSet
command = /usr/local/bin/toolchain-package-set.sh
but my point is that if you schedule qt to build in parallel with other smaller package(s) and you build ooo once qt is done there will probably not be such big overload.
Sorry to see you have no interest in implementing a vcs underneath portage.
Not having a lot of time and not having interest are two different things. We get lots of feature requests and the list is really quite long. Me might get to that eventually be there are lots of other things with higher priority at this time. Obviously we don't always have time to implement every person's request in a timely manner.
a) after --resume, and
b) even after --keep-going resumes
since I do not see any parallel emerges anymore. :-(
In fact, IIRC after --resume the compressed output of parallel emerges would not even appear, so the new options probably did not survive the restart.
The algorithm used to choose packages that will execute concurrently with other packages is as conservative as possible in the sense that a given package will not be executed if the subgraph composed of its direct and indirect dependencies contains any scheduled merges. By ensuring that the subgraph of deep dependencies is fully up to date in this way, potential problems are avoided which could be triggered by other build orders that are less optimal.
We might consider implementing more aggressive parallelization algorithms in the future.
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
| << < | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||