mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 12:32:12 +02:00
bitbake: runqueue: Optimise holdoff task handling
We don't need to process the holdoff task list until we're executing tasks which saves some data manipulation, at the cost of some data structures not being correct at all times. This saves significant amounts of time in various profile charts of larger builds. (Bitbake rev: 270f076111b12eab358417b0c4cf9c70d7cc787a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1711,6 +1711,7 @@ class RunQueueExecute:
|
||||
self.stampcache = {}
|
||||
|
||||
self.holdoff_tasks = set()
|
||||
self.holdoff_need_update = True
|
||||
self.sqdone = False
|
||||
|
||||
self.stats = RunQueueStats(len(self.rqdata.runtaskentries))
|
||||
@@ -2057,6 +2058,8 @@ class RunQueueExecute:
|
||||
self.rq.state = runQueueComplete
|
||||
return True
|
||||
|
||||
self.update_holdofftasks()
|
||||
|
||||
if self.cooker.configuration.setsceneonly:
|
||||
task = None
|
||||
else:
|
||||
@@ -2194,6 +2197,9 @@ class RunQueueExecute:
|
||||
return taskdepdata
|
||||
|
||||
def update_holdofftasks(self):
|
||||
|
||||
if not self.holdoff_need_update:
|
||||
return
|
||||
self.holdoff_tasks = set()
|
||||
|
||||
for tid in self.rqdata.runq_setscene_tids:
|
||||
@@ -2205,6 +2211,8 @@ class RunQueueExecute:
|
||||
if dep not in self.runq_complete:
|
||||
self.holdoff_tasks.add(dep)
|
||||
|
||||
self.holdoff_need_update = False
|
||||
|
||||
def process_possible_migrations(self):
|
||||
|
||||
changed = set()
|
||||
@@ -2324,7 +2332,7 @@ class RunQueueExecute:
|
||||
self.sqdone = False
|
||||
|
||||
if changed:
|
||||
self.update_holdofftasks()
|
||||
self.holdoff_need_update = True
|
||||
|
||||
def scenequeue_updatecounters(self, task, fail=False):
|
||||
|
||||
@@ -2373,7 +2381,7 @@ class RunQueueExecute:
|
||||
self.tasks_covered = covered
|
||||
self.tasks_notcovered = notcovered
|
||||
|
||||
self.update_holdofftasks()
|
||||
self.holdoff_need_update = True
|
||||
|
||||
def sq_task_completeoutright(self, task):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user