Testing box available.
Julian Elischer
julian at elischer.org
Thu Feb 14 07:26:41 UTC 2008
Bill Moran wrote:
> In response to Ed Schouten <ed at fxq.nl>:
>
>> * Ian FREISLICH <ianf at clue.co.za> wrote:
>>> As an aside, a 64 way parallel make buildworld doesn't saturate the CPU.
>> I'm not sure, but I think if you do this:
>>
>> make -j64 <foo>
>>
>> it only spawns 64 processes to handle the top level make process. This
>> would mean we've got a couple of processes doing this:
>>
>> make -C bin
>> make -C lib
>> make -C sbin
>> make -C usr.bin
>> make -C usr.sbin
>>
>> and the other processes will just quit, because they don't have anything
>> to do. Right? :-)
>
> Basically, -j tells make the _maximum_ number of jobs to run in parallel.
> I frequently do -j99, but I've never seen more than about 20. You can't
> just look at it for a second, either. Certain parts of the build
> process have more parallelism available than others, so you might look
> at it at a point where there are only a few.
>
> If you really want to saturate it, copy the src tree a few times and
> start a make -j99 buildworld in all of them simultaneously :D
>
my memory is that ohk changed make to have a fifo with N (as in -j N)
tokens in it and all child makes inherrit this fifo
(or get it's name from an environment variable or something)
and can only spawn extra makes if they can get a token.
When they have finished their work they pu the token back into the
fifo..
My memories of this may be somewhat inaccurate however.
More information about the freebsd-current
mailing list