[oe-commits] =?UTF-8?Q?An=C3=ADbal=20Lim=C3=B3n=20?=: oeqa/utils/qemurunner.py: Fix HIGH CPU usage on LoggingThread

git at git.openembedded.org git at git.openembedded.org
Wed Sep 23 08:56:12 UTC 2015


Module: openembedded-core.git
Branch: master
Commit: 7b6c9b6327638c9731cea80a52d30d4a8fb6e081
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=7b6c9b6327638c9731cea80a52d30d4a8fb6e081

Author: Aníbal Limón <anibal.limon at linux.intel.com>
Date:   Tue Sep 22 11:56:22 2015 -0500

oeqa/utils/qemurunner.py: Fix HIGH CPU usage on LoggingThread

LoggingThread is used for receive console output from QEMU
over TCP, so add filter to only wake poll on read events,
also change the event mask variable name to be more descriptive.

This fixes HIGH CPU consume caused by wake on ready to write
events.

Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/lib/oeqa/utils/qemurunner.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index d32c9db..6edd374 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -440,9 +440,9 @@ class LoggingThread(threading.Thread):
 
     def eventloop(self):
         poll = select.poll()
-        eventmask = self.errorevents | self.readevents
+        event_read_mask = self.errorevents | self.readevents
         poll.register(self.serversock.fileno())
-        poll.register(self.readpipe, eventmask)
+        poll.register(self.readpipe, event_read_mask)
 
         breakout = False
         self.running = True
@@ -466,7 +466,7 @@ class LoggingThread(threading.Thread):
                     self.readsock, _ = self.serversock.accept()
                     self.readsock.setblocking(0)
                     poll.unregister(self.serversock.fileno())
-                    poll.register(self.readsock.fileno())
+                    poll.register(self.readsock.fileno(), event_read_mask)
 
                     self.logger.info("Setting connection established event")
                     self.connection_established.set()



More information about the Openembedded-commits mailing list