* [PATCH] runqueue: Fix setscene task dependencies
@ 2016-01-10 18:08 Richard Purdie
0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2016-01-10 18:08 UTC (permalink / raw)
To: bitbake-devel; +Cc: Eggleton, Paul
Debugging suggests that setscene tasks are being a little greedy about their
dependencies, for example, lsof is insisting that gcc-runtime's do_package
is installed. If it isn't, its requiring gcc to rebuild, which is simply
wrong. If gcc-runtime do_package_write_xxx and do_packagedata is available,
there is no reason do_package should be needed.
The reason this is happening appears to be from the batching up of task
dependencies code, rather than setscene tasks stopping when passing over
a setscene task, they were being carried forward. This patch fixes it
so the data is 'zeroed' when passing over a setscene task boundary,
which gives the dependency graph that is expected.
After this patch, lsof will rebuild quite happily without
gcc-runtime:do_package being present, as expected. This should lead to
less dependencies being installed for builds from sstate and generally
better performance in general.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index da7059b..daf4c3d 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1721,6 +1721,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
sq_revdeps_new[point] = set()
if point in self.rqdata.runq_setscene:
sq_revdeps_new[point] = tasks
+ tasks = set()
for dep in self.rqdata.runq_depends[point]:
if point in sq_revdeps[dep]:
sq_revdeps[dep].remove(point)
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-01-10 18:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-10 18:08 [PATCH] runqueue: Fix setscene task dependencies Richard Purdie
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.