From 0467d530179b658f6a3630526d44858f0cab3024 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 10 Mar 2015 10:29:46 +0000 Subject: bitbake: cooker/server: Fix up 100% CPU usage at idle The recent inotify changes are causing a 100% cpu usage issue in the idle handlers. To avoid this, we update the idle functions to optionally report a float value which is the delay before the function needs to be called again. 1 second is fine for the inotify handler, in reality its more like 0.1s due to the default idle function sleep. This reverts performance regressions of 1.5 minutes on a kernel build and ~5-6 minutes on a image from scratch. (Bitbake rev: 0e0ba408c2dce14a0fabd3fdf61d8465a031495b) Signed-off-by: Richard Purdie --- bitbake/lib/bb/server/process.py | 3 +++ bitbake/lib/bb/server/xmlrpc.py | 3 +++ 2 files changed, 6 insertions(+) (limited to 'bitbake/lib/bb/server') diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index 7671b26a80..c9286ddba7 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/lib/bb/server/process.py @@ -135,6 +135,9 @@ class ProcessServer(Process, BaseImplServer): nextsleep = None elif retval is True: nextsleep = None + elif isinstance(retval, float): + if (retval < nextsleep): + nextsleep = retval elif nextsleep is None: continue else: diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py index 17f3d9d906..75ec8556f4 100644 --- a/bitbake/lib/bb/server/xmlrpc.py +++ b/bitbake/lib/bb/server/xmlrpc.py @@ -242,6 +242,9 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer): del self._idlefuns[function] elif retval is True: nextsleep = 0 + elif isinstance(retval, float): + if (retval < nextsleep): + nextsleep = retval else: fds = fds + retval except SystemExit: -- cgit v1.2.3-54-g00ecf