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