From f224201b5003b89367d688b1f08a062754fce13a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 15 Dec 2019 17:45:20 +0000 Subject: 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 (cherry picked from commit f04cd931091fb0508badf3e002d70a6952700495) --- lib/bb/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/bb/__init__.py b/lib/bb/__init__.py index c144311be..ce519ba39 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): -- cgit 1.2.3-korg