generic-poky/bitbake
Richard Purdie 3d34ae6c11 bitbake: bitbake-worker: Handle cooker/worker IO deadlocking
I noiced builds where tasks seemed to be taking a surprisingly long time.
When I looked at the output of top/pstree, these tasks were no longer
running despite being listed in knotty. Some were in D/Z state waiting for
their exit code to be collected, others were simply not present at all.

strace showed communication problems between the worker and cooker, each
was trying to write to the other and nearly deadlocking. Eventually, timeouts
would allow them to echange 64kb of data but this was only happening every
few seconds.

Whilst this particularly affected builds on machines with large numbers
of cores (and hence highly parallal task execution) and in cases where
I had a lot of debug enabled, this situation is clearly bad in general.

This patch introduces a thread to the worker which is used to write data
back to cooker. This means that the deadlock can't occur and data flows
much more freely and effectively.

(Bitbake rev: 3cb0d1c78b4c2e4f251a59b86c8da583828ad08b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-29 11:22:06 +00:00
..
bin bitbake: bitbake-worker: Handle cooker/worker IO deadlocking 2016-11-29 11:22:06 +00:00
contrib bitbake: dump_cache.py: use python3 as interpreter 2016-08-20 16:08:59 +01:00
doc bitbake: bitbake-user-manual: Changed BB_SETSCENE_VERIFY_FUNCTION name 2016-10-13 23:29:25 +01:00
lib bitbake: COW.py: fix sample codes 2016-11-23 10:59:56 +00:00
AUTHORS misc: Update the email address to a working one. 2011-01-04 14:36:54 +00:00
COPYING bitbake: Sync with upstream. 2007-01-08 23:53:01 +00:00
ChangeLog *: Fix typo in documentation 2010-08-04 16:12:39 +01:00
HEADER bitbake: Sync with upstream. 2007-01-08 23:53:01 +00:00
LICENSE bitbake: toaster: add Font Awesome license 2016-10-05 10:28:53 +01:00
toaster-requirements.txt bitbake: toaster: modified list of dependencies 2016-06-02 08:24:03 +01:00