summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r--bitbake/lib/bb/cooker.py2
-rwxr-xr-xbitbake/lib/bb/main.py6
-rw-r--r--bitbake/lib/bb/server/process.py6
3 files changed, 8 insertions, 6 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index c60fcd2719..fe33a4f34c 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -2027,7 +2027,7 @@ class Parser(multiprocessing.Process):
2027 self.exit = True 2027 self.exit = True
2028 2028
2029 def run(self): 2029 def run(self):
2030 bb.utils.profile_function(self.profile, self.realrun, "profile-parse-%s.log" % multiprocessing.current_process().name, process=False) 2030 bb.utils.profile_function("parsing" in self.profile, self.realrun, "profile-parse-%s.log" % multiprocessing.current_process().name, process=False)
2031 2031
2032 def realrun(self): 2032 def realrun(self):
2033 # Signal handling here is hard. We must not terminate any process or thread holding the write 2033 # Signal handling here is hard. We must not terminate any process or thread holding the write
diff --git a/bitbake/lib/bb/main.py b/bitbake/lib/bb/main.py
index bca8ebfa09..597cb27846 100755
--- a/bitbake/lib/bb/main.py
+++ b/bitbake/lib/bb/main.py
@@ -208,8 +208,10 @@ def create_bitbake_parser():
208 "failed and anything depending on it cannot be built, as much as " 208 "failed and anything depending on it cannot be built, as much as "
209 "possible will be built before stopping.") 209 "possible will be built before stopping.")
210 210
211 exec_group.add_argument("-P", "--profile", action="store_true", 211 exec_group.add_argument("-P", "--profile", action="append",
212 help="Profile the command and save reports.") 212 default=[],
213 help="Profile the command and save reports. Specify 'main', 'idle' or 'parsing' "
214 "to indicate which bitbake code to profile.")
213 215
214 exec_group.add_argument("-S", "--dump-signatures", action="append", 216 exec_group.add_argument("-S", "--dump-signatures", action="append",
215 default=[], metavar="SIGNATURE_HANDLER", 217 default=[], metavar="SIGNATURE_HANDLER",
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index 2c5057bff1..7d1b38f78c 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/lib/bb/server/process.py
@@ -137,7 +137,7 @@ class ProcessServer():
137 serverlog("Error writing to lock file: %s" % str(e)) 137 serverlog("Error writing to lock file: %s" % str(e))
138 pass 138 pass
139 139
140 return bb.utils.profile_function(self.cooker.configuration.profile, self.main, "profile-mainloop.log") 140 return bb.utils.profile_function("main" in self.cooker.configuration.profile, self.main, "profile-mainloop.log")
141 141
142 def _idle_check(self): 142 def _idle_check(self):
143 return len(self._idlefuns) == 0 and self.cooker.command.currentAsyncCommand is None 143 return len(self._idlefuns) == 0 and self.cooker.command.currentAsyncCommand is None
@@ -398,7 +398,7 @@ class ProcessServer():
398 serverlog("".join(msg)) 398 serverlog("".join(msg))
399 399
400 def idle_thread(self): 400 def idle_thread(self):
401 bb.utils.profile_function(self.cooker.configuration.profile, self.idle_thread_internal, "profile-idleloop.log") 401 bb.utils.profile_function("idle" in self.cooker.configuration.profile, self.idle_thread_internal, "profile-idleloop.log")
402 402
403 def idle_thread_internal(self): 403 def idle_thread_internal(self):
404 def remove_idle_func(function): 404 def remove_idle_func(function):
@@ -600,7 +600,7 @@ class BitBakeServer(object):
600 os.set_inheritable(self.bitbake_lock.fileno(), True) 600 os.set_inheritable(self.bitbake_lock.fileno(), True)
601 os.set_inheritable(self.readypipein, True) 601 os.set_inheritable(self.readypipein, True)
602 serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server") 602 serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server")
603 os.execl(sys.executable, sys.executable, serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(int(self.profile)), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1])) 603 os.execl(sys.executable, sys.executable, serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(list(self.profile)), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
604 604
605def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface, profile): 605def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface, profile):
606 606