From: Ulf Samuelsson <openembedded-core@emagii.com>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] local.conf.sample: Add automatic defaults for BB_NUMBER_THREADS and PARALLEL_MAKE
Date: Wed, 29 Jan 2014 13:09:10 +0100 [thread overview]
Message-ID: <52E8EF66.5040609@emagii.com> (raw)
In-Reply-To: <BEFD196E-8595-4DD1-BEAD-0183FBB61D55@dominion.thruhere.net>
2014-01-28 11:08, Koen Kooi skrev:
> Op 27 jan. 2014, om 15:39 heeft Richard Purdie <richard.purdie@linuxfoundation.org> het volgende geschreven:
>
>> Its rather sad that people don't appear to read local.conf and then complain
>> about slow builds when they're just using a single thread. Most systems have
>> more than one core now so we might as well use a more automatic default
>> for these values. This may lead to better experiences for new users.
>>
>> [YOCTO #2528]
>>
>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>> ---
>> diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample
>> index 71856b8..36d33e1 100644
>> --- a/meta/conf/local.conf.sample
>> +++ b/meta/conf/local.conf.sample
>> @@ -18,12 +18,18 @@
>> # option determines how many tasks bitbake should run in parallel:
>> #
>> #BB_NUMBER_THREADS ?= "4"
>> +#
>> +# Default to setting automatically based on cpu count
>> +BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
> I've noticed that after 4 threads IO becomes a big bottleneck when you have things like webkit, qt, asio etc in the buildqueue. Combine that with issues like every make -j thread taking >2GB ram with asio and webkit this default seems a bit high. I'd use 0.5*numcpu with a lower bound of 2.
>
> regards,
We discussed this 2.3 months ago.
Did some studies on my dual hex-core machine (24 H/W treads) while
building a cloud9-gnome-image derivative.
This did about 7500 tasks.
Enabled the CPU supervisors in the panel.
Everything seems to be ok with BB_NUMBER_THREADS = "24" for about 4-4500
tasks.
Then the CPUs are mostly inactive and only 1-2 running for ~500 tasks.
Then parallellism is resumed until about task 7000, and again
only a few CPUs are active.
I believe that some tools use "make" within the Makefile,
and they are written badly, and do not use "-j <n>" for
that part of the build.
Got my build down to 83 minutes.
Since I have 96 GB of RAM, I tried creating an 80 GB tmpfs for the build,
and copied the download and the recipes to the ram.
That shaved only 2 monutes from the build, and some stuff,
still built using only a single CPU.
BR
Ulf Samuelsson
> Koen
>
>> #
>> # The second option controls how many processes make should run in parallel when
>> # running compile tasks:
>> #
>> #PARALLEL_MAKE ?= "-j 4"
>> #
>> +# Default to setting automatically based on cpu count
>> +PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
>> +#
>> # For a quad-core machine, BB_NUMBER_THREADS = "4", PARALLEL_MAKE = "-j 4" would
>> # be appropriate for example.
>>
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
Best Regards
Ulf Samuelsson
eMagii
next prev parent reply other threads:[~2014-01-29 12:09 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-27 14:39 [PATCH] local.conf.sample: Add automatic defaults for BB_NUMBER_THREADS and PARALLEL_MAKE Richard Purdie
2014-01-27 16:45 ` Otavio Salvador
2014-01-27 17:23 ` Stewart, David C
2014-01-27 17:25 ` Burton, Ross
2014-01-28 10:08 ` Koen Kooi
2014-01-28 10:41 ` Richard Purdie
2014-01-29 12:09 ` Ulf Samuelsson [this message]
2014-01-29 12:56 ` Richard Purdie
2014-01-29 13:32 ` Ulf Samuelsson
2014-01-29 14:44 ` Ross Burton
2014-02-01 9:21 ` Mike Looijmans
2014-02-03 21:23 ` Ulf Samuelsson
2014-02-03 23:34 ` Richard Purdie
2014-02-04 16:13 ` Enrico Scholz
2014-02-04 16:59 ` Mark Hatle
2014-02-04 18:00 ` Enrico Scholz
2014-01-29 10:14 ` Steffen Sledz
2014-01-29 10:22 ` Paul Eggleton
2014-01-29 11:42 ` Steffen Sledz
2014-01-29 10:59 ` Richard Purdie
2014-01-29 11:47 ` Steffen Sledz
2014-01-29 11:52 ` Paul Eggleton
2014-01-29 12:46 ` Steffen Sledz
2014-01-29 16:39 ` Laszlo Papp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52E8EF66.5040609@emagii.com \
--to=openembedded-core@emagii.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=ulf@emagii.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox