aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/tinfoil.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-11-24 21:41:30 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-02-03 09:52:19 +0000
commit1371bb4c43e43db3aa27c7716c14652358b28b85 (patch)
treeaf9f120056b6715b23d14e5eb32f0ba969707bb3 /bitbake/lib/bb/tinfoil.py
parente732dfb8df7f4dba21daefae4c58b17a4994ea24 (diff)
downloadopenembedded-core-contrib-1371bb4c43e43db3aa27c7716c14652358b28b85.tar.gz
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: f48befe1163147b02a9926ee38af0f7258a477e0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/tinfoil.py')
0 files changed, 0 insertions, 0 deletions