diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 2 | ||||
-rwxr-xr-x | bitbake/lib/bb/main.py | 6 | ||||
-rw-r--r-- | bitbake/lib/bb/server/process.py | 6 |
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 | ||
605 | def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface, profile): | 605 | def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface, profile): |
606 | 606 | ||