aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-15 17:45:20 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-16 14:09:49 +0000
commitf04cd931091fb0508badf3e002d70a6952700495 (patch)
tree752fffb97c7fd674cbdd917aa9e42b5f8773a73a
parentd446fa89d206fbc6d098215163c968ea5a8cf4a9 (diff)
downloadbitbake-contrib-f04cd931091fb0508badf3e002d70a6952700495.tar.gz
lib/bb: Optimise out debug messages from cooker
We have bb.debug(2, xxx) messages in cooker which are useful for debugging but have really bad effects on performance, 640,000 calls on recent profile graphs taking tens of seconds. Rather than commenting out debug which can be useful for debugging, don't create events for debug log messages from cooker which would never be seen. We already stop the messages hitting the IPC but this avoids the overhead of creating the log messages too, which has been shown to be signficiant on the profiles. This allows the code to perform whilst allowing debug messages to be availble when wanted/enabled. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/__init__.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/bb/__init__.py b/lib/bb/__init__.py
index b9d8bfa76..88641e280 100644
--- a/lib/bb/__init__.py
+++ b/lib/bb/__init__.py
@@ -43,6 +43,11 @@ class BBLogger(Logger):
Logger.__init__(self, name)
def bbdebug(self, level, msg, *args, **kwargs):
+ if not bb.event.worker_pid:
+ if self.name in bb.msg.loggerDefaultDomains and level > (bb.msg.loggerDefaultDomains[self.name]):
+ return
+ if level > (bb.msg.loggerDefaultDebugLevel):
+ return
return self.log(logging.DEBUG - level + 1, msg, *args, **kwargs)
def plain(self, msg, *args, **kwargs):