diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-14 18:17:01 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-16 23:27:14 +0000 |
commit | 45f62a4a25a6db94d861685914fceb7953a753e3 (patch) | |
tree | 91129ebb6d58954b623a86724965a8908a357d34 /bitbake/lib/bb/runqueue.py | |
parent | e4dc65ad46a1da2df5fc0042e24bbe8ccdd7bd90 (diff) | |
download | poky-45f62a4a25a6db94d861685914fceb7953a753e3.tar.gz |
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: e28ec69356f1797de3e4e3fca0fef710bc4564de)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 2ba4557f9f..6da612b719 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -2268,15 +2268,16 @@ class RunQueueExecute: | |||
2268 | 2268 | ||
2269 | # Work out all tasks which depend upon these | 2269 | # Work out all tasks which depend upon these |
2270 | total = set() | 2270 | total = set() |
2271 | next = set() | ||
2271 | for p in toprocess: | 2272 | for p in toprocess: |
2272 | next = set(self.rqdata.runtaskentries[p].revdeps) | 2273 | next |= self.rqdata.runtaskentries[p].revdeps |
2273 | while next: | 2274 | while next: |
2274 | current = next.copy() | 2275 | current = next.copy() |
2275 | total = total | next | 2276 | total = total | next |
2276 | next = set() | 2277 | next = set() |
2277 | for ntid in current: | 2278 | for ntid in current: |
2278 | next |= self.rqdata.runtaskentries[ntid].revdeps | 2279 | next |= self.rqdata.runtaskentries[ntid].revdeps |
2279 | next.difference_update(total) | 2280 | next.difference_update(total) |
2280 | 2281 | ||
2281 | # Now iterate those tasks in dependency order to regenerate their taskhash/unihash | 2282 | # Now iterate those tasks in dependency order to regenerate their taskhash/unihash |
2282 | next = set() | 2283 | next = set() |