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>