Patchwork [bitbake-devel] build.py: Only execute mkdirhier if stampdir doesn't exist

login
register
mail settings
Submitter Richard Purdie
Date Aug. 15, 2012, 3:57 p.m.
Message ID <1345046267.14667.7.camel@ted>
Download mbox | patch
Permalink /patch/34637/
State New
Headers show

Comments

Richard Purdie - Aug. 15, 2012, 3:57 p.m.
I noticed this was showing up on profile logs as a sigificant time user
in "bitbake bash" when bash was already built. It reduces the time from
5.2 to 4.5 seconds in my test environment.

We make use of the parser's mtime cache as once a directory exists,
we can assume it continues to exist and this avoids syscalls.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---

Patch

diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index bea2926..d64077e 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -464,7 +464,9 @@  def stamp_internal(taskname, d, file_name):
 
     stamp = bb.parse.siggen.stampfile(stamp, file_name, taskname, extrainfo)
 
-    bb.utils.mkdirhier(os.path.dirname(stamp))
+    stampdir = os.path.dirname(stamp)
+    if bb.parse.cached_mtime_noerror == 0:
+        bb.utils.mkdirhier(stampdir)
 
     return stamp