aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-07-06 14:16:12 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-07-15 09:31:50 +0100
commit63ddc2fec40bd1b456702b97091f9dc5ef70a941 (patch)
tree9a8a535cd664f1bdfb9414ecd93a4adcf105d548
parent3ab51764f7965d696bb2c5a872bf161473df4289 (diff)
downloadbitbake-63ddc2fec40bd1b456702b97091f9dc5ef70a941.tar.gz
runqueue: Add covered_tasks (or 'collated_deps') to scenequeue data
Its useful to have a list of all the tasks a given setscene task covers and we can easily generate this data whilst doing other data processing. This is used in later changes to runqueue rather than trying to compute it on the fly which is difficult. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/runqueue.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 3cf8aed06..c06e4199d 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -2291,6 +2291,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
sq_revdeps = {}
sq_revdeps_new = {}
sq_revdeps_squash = {}
+ sq_collated_deps = {}
# We need to construct a dependency graph for the setscene functions. Intermediate
# dependencies between the setscene tasks only complicate the code. This code
@@ -2312,6 +2313,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
# Secondly process the chains between setscene tasks.
for tid in rqdata.runq_setscene_tids:
+ sq_collated_deps[tid] = set()
#bb.warn("Added endpoint 2 %s" % (tid))
for dep in rqdata.runtaskentries[tid].depends:
if tid in sq_revdeps[dep]:
@@ -2331,6 +2333,9 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
tasks |= task
if sq_revdeps_new[point]:
tasks |= sq_revdeps_new[point]
+ if point not in rqdata.runq_setscene_tids:
+ for t in tasks:
+ sq_collated_deps[t].add(point)
sq_revdeps_new[point] = set()
if point in rqdata.runq_setscene_tids:
sq_revdeps_new[point] = tasks
@@ -2442,6 +2447,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
sqdata.sq_revdeps = sq_revdeps_squash
sqdata.sq_revdeps2 = copy.deepcopy(sqdata.sq_revdeps)
+ sqdata.sq_covered_tasks = sq_collated_deps
for tid in sqdata.sq_revdeps:
sqdata.sq_deps[tid] = set()