From c37d0c4aa55f5fd703f0b9a34fe324b0a78db419 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 12 Dec 2019 18:57:13 +0000 Subject: bitbake: siggen: Fix performance issue in get_unihash There is a significant performance issue in get_unihash(). The issue turns out to be the lookups of setscene tasks. We can fix this by using a set() instead of the current list. (Bitbake rev: 5afad266f2ce55db2038c36f2e49a3c80be9bbfc) Signed-off-by: Richard Purdie (cherry picked from commit 1e561672d039ebfb8cd0e0654a44dcf48513317c) Signed-off-by: Richard Purdie --- bitbake/lib/bb/siggen.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index dbf510238f..2fec8599b3 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py @@ -44,7 +44,7 @@ class SignatureGenerator(object): self.file_checksum_values = {} self.taints = {} self.unitaskhashes = {} - self.setscenetasks = {} + self.setscenetasks = set() def finalise(self, fn, d, varient): return @@ -110,7 +110,7 @@ class SignatureGeneratorBasic(SignatureGenerator): self.taints = {} self.gendeps = {} self.lookupcache = {} - self.setscenetasks = {} + self.setscenetasks = set() self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split()) self.taskwhitelist = None self.init_rundepcheck(data) @@ -157,7 +157,7 @@ class SignatureGeneratorBasic(SignatureGenerator): return taskdeps def set_setscene_tasks(self, setscene_tasks): - self.setscenetasks = setscene_tasks + self.setscenetasks = set(setscene_tasks) def finalise(self, fn, d, variant): -- cgit v1.2.3-54-g00ecf