[poky] [RFC 0/4] socketed based data connection
Tian, Kevin
kevin.tian at intel.com
Tue Dec 21 21:52:20 PST 2010
>From: Qing He
>Sent: Wednesday, December 22, 2010 1:25 AM
>
>On Wed, 2010-12-22 at 00:49 +0800, He, Qing wrote:
>> This patch set enables remote data access in the exec'd task process.
>
>It's intended to be proof of concept to an alternative approach
>to work around the slowness introduced by exec bitbake-runtask.
>The patch is still WIP.
>
>http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=qhe/datasock
looks the change is not intrusive as I originally thought. :-)
>
>Thanks,
>Qing
>
>>
>> Some test data:
>> I've conducted a poky-image-minimal build on two different machines
>> with and without the patch, the result are as follow:
>>
>> 2 core weybridge: worker count=4, make -j4
>> without patch
>> real: 161min
>> user: 237min
>> sys: 56min
>> with patch
>> real: 138min
>> user: 196min
>> sys: 45min
>> 4 core nehalem: worker count=4, make -j4
>> without patch
>> real: 88min
>> user: 218min
>> sys: 37min
>> with patch
>> real: 83min
>> user: 160min
>> sys: 29min
>>
>> the user+sys has an improvement of around 20%~30%, however the
>> real runtime improvement is less significant. It's probably
>> because of the thread workload unbalance on multicore, or in another
>> word, some CPUs are not fully loaded during the build. e.g. when
>> do_rootfs_rpm is run, there is probably no other tasks running.
>>
>> Haven't done any test against single thread running, but it should
>> have a much more considerable impact.
>>
>>
>> Known problems:
>> 1. fetcher is not working at the moment, maybe bitbake needs an explicit
>> InheritFromOS(), but that produces some inconsistency in PATH in my previous
>> run
>> 2. do_rootfs_rpm has some problem in the first run
>>
>>
>> Next step and possible future usage:
>> 1. organize remote data to a separate class
>> 2. although we have reverted to fork for task running, a remote data mechanism
>> would work for a more separate build (e.g. distributed build)
>> 3. the added code in bitbake-runtask is to run necessary initializations for a
>> working environment, this is part of cooker. The current cooker seems too heavy
>> and may be broken down into several pieces according to functionalitiies
>>
>> Thanks,
>> Qing
>>
>>
>> Pull URL: git://git.pokylinux.org/poky-contrib.git
>> Branch: qhe/datasock
>> Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=qhe/datasock
>>
>> Thanks,
>> Qing He
>> ---
>>
>>
>> Qing He (4):
>> python method fix
>> sstate.bbclass: workaround
>> data_smart: remote data
>> socket based worker data
>>
>> bitbake/bin/bitbake-runtask | 80
>+++++++++++++++++++++++++++++++++--------
>> bitbake/lib/bb/data_smart.py | 25 ++++++++++++-
>> bitbake/lib/bb/methodpool.py | 6 +++
>> bitbake/lib/bb/parse/ast.py | 2 +-
>> bitbake/lib/bb/runqueue.py | 68
>++++++++++++++++++++++++++++++++----
>> meta/classes/sstate.bbclass | 2 +-
>> 6 files changed, 157 insertions(+), 26 deletions(-)
>>
>_______________________________________________
>poky mailing list
>poky at yoctoproject.org
>https://lists.yoctoproject.org/listinfo/poky
More information about the poky
mailing list