<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&#39;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&#39;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&#39;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&#39;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&#39;m waiting for your feedback. Meanwhile, I&#39;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>