diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-11-24 21:41:30 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-02-03 09:52:19 +0000 |
commit | 1371bb4c43e43db3aa27c7716c14652358b28b85 (patch) | |
tree | af9f120056b6715b23d14e5eb32f0ba969707bb3 /meta/classes | |
parent | e732dfb8df7f4dba21daefae4c58b17a4994ea24 (diff) | |
download | poky-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 'meta/classes')
0 files changed, 0 insertions, 0 deletions