]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oeqa/qemurunner: Use a timeout in select() call
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 6 Sep 2013 14:14:34 +0000 (14:14 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 6 Sep 2013 22:01:51 +0000 (23:01 +0100)
A 0 value to select.select() immediately returns with no timeout. This was
pegging the cpu at 100% for the python process which was bad and may be
contributing to some of the timeout problems.

Profile from -P of a core-image-minimal before:

    97526792 function calls (97525652 primitive calls) in 45.189 seconds

and after:

       50204 function calls (49064 primitive calls) in 17.318 seconds

Saving 97.5 million function calls has to be good :)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/utils/qemurunner.py

index e7bd8b147b43f5454b3064a261222e28541dd82e..b5c757a927c76c0eca4fd75135133381f87778cc 100644 (file)
@@ -101,7 +101,7 @@ class QemuRunner:
             reachedlogin = False
             stopread = False
             while time.time() < endtime and not stopread:
-                sread, swrite, serror = select.select(socklist, [], [], 0)
+                sread, swrite, serror = select.select(socklist, [], [], 5)
                 for sock in sread:
                     if sock is self.server_socket:
                         self.qemusock, addr = self.server_socket.accept()