* [PATCH 1/2] sstatesig: Optimise get_taskhash for hashequiv
@ 2019-12-15 9:07 Richard Purdie
2019-12-15 9:07 ` [PATCH 2/2] scripts/oe-build-perf-test: Use python3 from the environment Richard Purdie
2019-12-15 9:32 ` ✗ patchtest: failure for "sstatesig: Optimise get_taskha..." and 1 more Patchwork
0 siblings, 2 replies; 3+ messages in thread
From: Richard Purdie @ 2019-12-15 9:07 UTC (permalink / raw)
To: openembedded-core
With hashequiv the get_taskhash function is called much more regularly
and contains expensive operations. This these don't change based upon
hash in a given build, improve the caching within the function to
reduce overhead.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
meta/lib/oe/sstatesig.py | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index c566ce5a0cb..8d009bfdc6e 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -142,6 +142,13 @@ class SignatureGeneratorOEBasicHashMixIn(object):
def get_taskhash(self, tid, deps, dataCache):
h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache)
+ if tid in self.lockedhashes:
+ if self.lockedhashes[tid]:
+ return self.lockedhashes[tid]
+ else:
+ return h
+
+ h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache)
(mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid)
@@ -178,17 +185,19 @@ class SignatureGeneratorOEBasicHashMixIn(object):
% (recipename, task, h, h_locked, var))
return h_locked
+
+ self.lockedhashes[tid] = False
#bb.warn("%s %s %s" % (recipename, task, h))
return h
def get_unihash(self, tid):
- if tid in self.lockedhashes:
+ if tid in self.lockedhashes and self.lockedhashes[tid]:
return self.lockedhashes[tid]
return super().get_unihash(tid)
def dump_sigtask(self, fn, task, stampbase, runtime):
tid = fn + ":" + task
- if tid in self.lockedhashes:
+ if tid in self.lockedhashes and self.lockedhashes[tid]:
return
super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigtask(fn, task, stampbase, runtime)
--
2.20.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-12-15 9:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-15 9:07 [PATCH 1/2] sstatesig: Optimise get_taskhash for hashequiv Richard Purdie
2019-12-15 9:07 ` [PATCH 2/2] scripts/oe-build-perf-test: Use python3 from the environment Richard Purdie
2019-12-15 9:32 ` ✗ patchtest: failure for "sstatesig: Optimise get_taskha..." and 1 more Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox