<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">Hello,</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">
I have a RFC patch that attempts to improve build performance by dynamically selecting the next-to-run task based on currently running tasks. The general idea is if we overload the network with too many fetch tasks, it's better to start doing unpack tasks while the disks idle instead of starting new fetch tasks. The concept can be generally applied, e.g. it's better to schedule package tasks in parallel with compile tasks instead of running all the compile tasks first and then all package tasks.</div>
<div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">This patch just looks at currently running tasks and selects the next available task that hasn't a similar-type task already running.</div>
<div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I'm seeing a roughly 2% build time reduction when building the virtual:native components, with just 26 tasks reordered out of 244 tasks executed. I am attaching a toaster.sqlite file that captures the test - build no.1 is done with the origin/master source, and build no. 2 is done with this patch applied.</div>
<div class="gmail_default" style="font-family:tahoma,sans-serif"><br>DO NOT MERGE - this patch exposes dependency problems in OE-Core, specifically GCC 4.8 recipes. It breaks the OE-Core builds.</div><div><br></div><div>
<div class="gmail_default" style="font-family:tahoma,sans-serif">
I'm waiting for your feedback. Meanwhile, I'm gonna try to solve the GCC problems exposed.</div><br></div><div><br></div>-- <br><div dir="ltr">Alex Damian<div>Yocto Project<br></div><div>SSG / OTC </div></div>
</div>