mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
bitbake: runqueue: Fix scenetask processing performance issue
Analysis shows that "bitbake core-image-ptest-all" spends a lot of time in scenequeue_updatecounters and much of it is rebuilding a set which doens't change. Reorder the code to avoid that performance glitch. (Bitbake rev: f40a3a477d5241b697bf2fb030dd804c1ff5839f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 923c19b9713e398d8e66e6d4422dfd4c18a03486) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
ac3e66f1a6
commit
ae41df7b37
@@ -2759,8 +2759,12 @@ class RunQueueExecute:
|
|||||||
logger.debug2("%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
|
logger.debug2("%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
|
||||||
self.sq_task_failoutright(dep)
|
self.sq_task_failoutright(dep)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# For performance, only compute allcovered once if needed
|
||||||
|
if self.sqdata.sq_deps[task]:
|
||||||
|
allcovered = self.scenequeue_covered | self.scenequeue_notcovered
|
||||||
for dep in sorted(self.sqdata.sq_deps[task]):
|
for dep in sorted(self.sqdata.sq_deps[task]):
|
||||||
if self.sqdata.sq_revdeps[dep].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
|
if self.sqdata.sq_revdeps[dep].issubset(allcovered):
|
||||||
if dep not in self.sq_buildable:
|
if dep not in self.sq_buildable:
|
||||||
self.sq_buildable.add(dep)
|
self.sq_buildable.add(dep)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user