mirror of
https://git.yoctoproject.org/poky
synced 2026-02-15 21:23:04 +01:00
bitbake: runqueue: Optimise task migration code slightly
Move the calls to difference_update out a code level which improves efficiency significantly. Also further combine the outer loop for efficiency too. These two changes remove a bottleneck from the performance charts. (Bitbake rev: 57df7f191755dd887827d51b125d246c1af3e1b6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit e28ec69356f1797de3e4e3fca0fef710bc4564de) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -2268,15 +2268,16 @@ class RunQueueExecute:
|
||||
|
||||
# Work out all tasks which depend upon these
|
||||
total = set()
|
||||
next = set()
|
||||
for p in toprocess:
|
||||
next = set(self.rqdata.runtaskentries[p].revdeps)
|
||||
while next:
|
||||
current = next.copy()
|
||||
total = total | next
|
||||
next = set()
|
||||
for ntid in current:
|
||||
next |= self.rqdata.runtaskentries[ntid].revdeps
|
||||
next.difference_update(total)
|
||||
next |= self.rqdata.runtaskentries[p].revdeps
|
||||
while next:
|
||||
current = next.copy()
|
||||
total = total | next
|
||||
next = set()
|
||||
for ntid in current:
|
||||
next |= self.rqdata.runtaskentries[ntid].revdeps
|
||||
next.difference_update(total)
|
||||
|
||||
# Now iterate those tasks in dependency order to regenerate their taskhash/unihash
|
||||
next = set()
|
||||
|
||||
Reference in New Issue
Block a user