On Tue, Sep 11, 2012 at 1:07 PM, Zac Medico <zmed...@gentoo.org> wrote:
> On 09/11/2012 09:54 AM, Ian Stakenvicius wrote:
>> At the ebuild level, certainly, but that's one of the reasons for
>> EJOBS in the first place, so that it can be overridden consistently
>> within a phase, if necessary for the ebuild (regardless of build
>> system type), right?
>
> Right. I'm surprised that ELOADAVG wasn't proposed in tandem with EJOBS
> though, since overloading is not a good idea, and can happen easily any
> time that you doing lots of things in parallel.

I tend to agree that load average matters more, although that doesn't
factor in RAM use.

I don't suggest that this is something that is easily remedied, but I
have run into a situation where WHAT you're doing greatly influences
how many jobs you can run - distcc.  I once tried to implement distcc
in a fairly large cluster, and then run make with VERY high levels of
parallelization - such as -j32.  That worked great - if the package
used C.  Then portage would try to build something that used ant and
suddenly the host was trying to run 32 jvms in parallel - just killing
the system.  Ditto for python/etc.  There was no way to tell the build
system to go nuts with anything using distcc but not everything else.

I think this is just a fundamental limitation of make - I don't
suggest that we can fix this at the portage level.  However, that is a
use case where WHAT you're doing influences how many jobs you can run.

Rich

Reply via email to