summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-27 14:55:50 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-28 15:12:45 +0100
commit34226b82daaaefb2bc2defbe586f26413201bb26 (patch)
treebe24936976f88a6c224594b3322e021694462a5c /bitbake/lib
parentac66e15f5cf0dfabab84967338909632559f5b7b (diff)
downloadpoky-34226b82daaaefb2bc2defbe586f26413201bb26.tar.gz
bitbake: bitbake-worker: Extra profiling data dump
Currently we get no profiling oversight into either the main bitbake worker process, or the overall parsing before task execution. This adds in extra profiling hooks so we can truly capture all parts of bitbake's execution into the profile data. To do this we modify the 'magic' value passed to bitbake-worker to trigger the profiling, before the configuration data is sent over to the worker. (Bitbake rev: 446e490bf485b712e5cee733dab5805254cdcad0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/runqueue.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index e32f81a165..39df79473e 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -859,15 +859,18 @@ class RunQueue:
859 859
860 def _start_worker(self, fakeroot = False, rqexec = None): 860 def _start_worker(self, fakeroot = False, rqexec = None):
861 logger.debug(1, "Starting bitbake-worker") 861 logger.debug(1, "Starting bitbake-worker")
862 magic = "decafbad"
863 if self.cooker.configuration.profile:
864 magic = "decafbadbad"
862 if fakeroot: 865 if fakeroot:
863 fakerootcmd = self.cfgData.getVar("FAKEROOTCMD", True) 866 fakerootcmd = self.cfgData.getVar("FAKEROOTCMD", True)
864 fakerootenv = (self.cfgData.getVar("FAKEROOTBASEENV", True) or "").split() 867 fakerootenv = (self.cfgData.getVar("FAKEROOTBASEENV", True) or "").split()
865 env = os.environ.copy() 868 env = os.environ.copy()
866 for key, value in (var.split('=') for var in fakerootenv): 869 for key, value in (var.split('=') for var in fakerootenv):
867 env[key] = value 870 env[key] = value
868 worker = subprocess.Popen([fakerootcmd, "bitbake-worker", "decafbad"], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env) 871 worker = subprocess.Popen([fakerootcmd, "bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env)
869 else: 872 else:
870 worker = subprocess.Popen(["bitbake-worker", "decafbad"], stdout=subprocess.PIPE, stdin=subprocess.PIPE) 873 worker = subprocess.Popen(["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
871 bb.utils.nonblockingfd(worker.stdout) 874 bb.utils.nonblockingfd(worker.stdout)
872 workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec) 875 workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec)
873 876