[oe] [Bitbake-dev] Bitbake runqueue performance improvement

Michael Smith msmith at cbnco.com
Tue Jul 21 22:58:51 UTC 2009


Richard Purdie wrote:
> On Tue, 2009-07-21 at 19:32 +0100, Richard Purdie wrote:
>> The attached patch rewrites the problematic function entirely with the
>> following benefits:
> 
> Of course one of my last minute cosmetic cleanups broke it :(.
> 
> http://git.pokylinux.org/cgit.cgi/poky/commit/?id=502bd2ef92f6cddf74ac85279dab621372791dc0 is the key fix with a couple of other things I noticed too.

Hi Richard,

I've been playing around with this and it seems to be creating some 
problems, unless it's just finding problems in my overlay that the old 
code didn't see.

With the latest fix, it finds dependency loops, but I'm not sure how to 
track them down as the dependencies are identified only by numbers:

NOTE: Preparing runqueue
ERROR: Unbuildable tasks were found.
These are usually caused by circular dependencies and any circular 
dependency chains found will be printed below. Increase the debug level 
to see a list of unbuildable tasks.

Identifying dependency loops (this may take a short while)...

ERROR:
Dependency loop #1 found:
   Task 7 
(/home/michael/startitup/public/recipes/images/toastix-image.bb, 
do_install) (depends: set([9, 6]))
   Task 8 
(/home/michael/startitup/public/recipes/images/toastix-image.bb, 
do_populate_staging) (depends: set([7]))
   Task 9 
(/home/michael/startitup/public/recipes/images/toastix-image.bb, 
do_rootfs) (depends: set([1024, 6, 2049, 8, 2057, 2059, 13, 791, 2067, 
21, 23, 2077, 31, 33, 2087, 41, 43, 2097, 51, 53, 2107,

[snip a few hundred numbers]

Before the fix from 502bd2e, it was dropping some do_package_write_deb 
dependencies that are needed to ensure .debs are built for packages that 
are not listed in IMAGE_INSTALL, but are required by other packages. My 
task-depends.dot was missing about 1000 entries. So was my depends.dot.

For example, I've got openssh in my IMAGE_INSTALL and it DEPENDS on zlib 
(and has a run-time dependency via shlibs). If I removed my zlib debs 
and tmp/stamps/blah/zlib-1.2.3-r5.do_package*, building my image should 
have built the zlib debs (and did before applying your patches), but it 
didn't so the rootfs failed.


BTW, is there any chance of getting Bitbake officially moved to a Git 
repo? I think a few people are working out of git-svn trees, or subdirs 
inside larger git trees, but it takes some gymnastics to merge between 
them as Git doesn't know they're related.

Thanks,
Mike




More information about the Openembedded-devel mailing list