From 56631225aad14e8f80eb908498fcf7514313e2a8 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 13 Dec 2019 16:07:28 +0000 Subject: bitbake: siggen: Split get_tashhash for performance There are two operations happening in get_taskhash, the building of the underlying data and the calculation of the hash. Split these into two funtions since the preparation part doesn't need to rerun when unihash changes, only the calculation does. This split allows sigificant performance improvements for hashequiv in builds where many hashes are equivalent and many hashes are changing. (Bitbake rev: c4ce216b4c5a1626764752edd21005750d05a0c2) Signed-off-by: Richard Purdie (cherry picked from commit 6a32af2808d748819f4af55c443578c8a63062b3) Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 1 + 1 file changed, 1 insertion(+) (limited to 'bitbake/lib/bb/runqueue.py') diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index b3648ddb54..515e9d4314 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1185,6 +1185,7 @@ class RunQueueData: procdep = [] for dep in self.runtaskentries[tid].depends: procdep.append(dep) + bb.parse.siggen.prep_taskhash(tid, procdep, self.dataCaches[mc_from_tid(tid)]) self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.dataCaches[mc_from_tid(tid)]) self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid) -- cgit v1.2.3-54-g00ecf