Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Feb 2013 14:49:16 +0000
From:      David Chisnall <David.Chisnall@cl.cam.ac.uk>
To:        Fabian Keil <freebsd-listen@fabiankeil.de>
Cc:        freebsd-current@freebsd.org, David Chisnall <theraven@freebsd.org>, Steve Kargl <sgk@troutmask.apl.washington.edu>
Subject:   Re: 7+ days of dogfood
Message-ID:  <5BC7246C-4339-48B1-BC7E-9FF6CE1FEF1C@cl.cam.ac.uk>
In-Reply-To: <20130211145647.79a01f7e@fabiankeil.de>
References:  <20130210000723.GA73630@troutmask.apl.washington.edu> <20130211114811.09e56b55@fabiankeil.de> <17E009FB-23FA-4E04-8437-DE81033164DE@FreeBSD.org> <20130211145647.79a01f7e@fabiankeil.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11 Feb 2013, at 13:56, Fabian Keil <freebsd-listen@fabiankeil.de> =
wrote:

> real    350m42.363s
> user    253m5.477s
> sys     50m0.024s

These numbers look a bit wrong.  You've got 300 minutes of CPU time, but =
350 minutes of real time.  In an ideal world, on your dual-core system =
you'd see 150 minutes of real time.  Seeing more than 300 implies that =
you're spending a lot of time waiting for I/O.  The normal =
recommendation is to use -j x where x is 1.5 times the number of cores, =
or 1x the number of GBs of RAM, whichever is smaller.  With only 2GB of =
RAM you might have linking problems with -j3, but it's still worth =
trying.

One of the more serious problems with our current build system is that =
it doesn't scale well to large numbers of cores.  On a 32-core system, =
with -j64, we're very rarely managing to have even 8 things able to run =
in parallel.  This should be addressed when the bmake import is fully =
integrated and we can use meta mode for better dependency tracking. =20

Ninja has a concept of pools, so you can say 'only run one link job at a =
time, but you can do two C++ compile jobs or 4 C compile jobs', and it =
might be interesting to look at adding something similar to bmake, as =
this can improve scalability a lot.

David




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5BC7246C-4339-48B1-BC7E-9FF6CE1FEF1C>