[OE-core] Performance - Staus and plans

Richard Purdie richard.purdie at linuxfoundation.org
Mon May 16 12:08:34 UTC 2011


I'm going to cover both disk usage and build time in this list with a
summary of the currently identified tasks we're working on and their
status as I understand them:

a) Split libc locale generation from libc do_install/do_package

   Status: Dongxiao has a WIP patch. Do we have an ETA on that?

b) Share the source directories for gcc, glibc and maybe others

   Status: RP wrote a proof of concept patch, needs further work, on 
   Yocto schedule for 1.1

c) Set CCACHE on a per recipe basis. need to figure out whether ccache 
   data can be shared and under what circumstances.

   Status: Idea talked about, no code yet

d) Cache do_configure autoreconf result

   Status: We know this is about 50% of the time on configure, no code 
   yet. Need fixes to SRC_URI variable dependency code to include 
   checksums (which we need to fix regardless)

e) Remove perl-native from most build dependencies by installing it 
   into its own sysroot

   Status: WIP

f) Document performance best practises (e.g. no premempt in kernel, 
   use server kernel on ubuntu)

   Status: Not done yet.

Further investigative ideas I've been wondering about:

a) Consider current dependency tree and see if any dependencies could 
   be avoided?

b) Consider contents of our standard images and what could be removed 
   for what build time improvement?

c) Find a system with complete symbol data present, then run a minimal 
   build under oprofile and see if anything significant bottle necks 
   appear? To get good debug data we might do a build under a poky 
   generated image! :)

d) Consider better ways to enable pseudo to be prebuilt in parallel 
   with other native recipes as this takes a significant chunk of time 
   when we aren't using parallelism.

e) Compare the build time of "bitbake glibc -c populate_sysroot; 
   bitbake core-image-sato" with "bitbake core-image-sato"

My big concern is that whilst I think if we keep working at it, we can
get the standard build time to 90 minutes (currently master is 102), we
don't currently have any gain identified that could get us to the 60
minute build time.

Cheers,

Richard








More information about the Openembedded-core mailing list