summaryrefslogtreecommitdiffstats
path: root/bitbake/bin
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-28 11:09:19 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-30 10:10:36 +0100
commitef28fcd7feb13db21572d28549427ee153957097 (patch)
treedcdf0df760d32a3a56ff8900c425add9e78c4741 /bitbake/bin
parentf80334d8aa680c249d84df9109ceca9e7a479cdd (diff)
downloadpoky-ef28fcd7feb13db21572d28549427ee153957097.tar.gz
bitbake: bin/bitbake/cooker: Ensure initial featureset is optimal
If the featureset didn't match the defaults, we'd pay the price of two base configuration parses which showed up adversely in the performance benchmarks. This also passes the feature set into the cooker creation so in the common case we don't have to reset the server. This speeds up both knotty and hob startup. If the featureset doesn't match, the system will reset as before, this just streamlines the common case. (Bitbake rev: 1249543c4dbf3edeac033d888497864cfc807a4e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/bin')
-rwxr-xr-xbitbake/bin/bitbake16
1 files changed, 9 insertions, 7 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
index b173f16ce1..cd01992bae 100755
--- a/bitbake/bin/bitbake
+++ b/bitbake/bin/bitbake
@@ -203,7 +203,7 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
203 return options, targets[1:] 203 return options, targets[1:]
204 204
205 205
206def start_server(servermodule, configParams, configuration): 206def start_server(servermodule, configParams, configuration, features):
207 server = servermodule.BitBakeServer() 207 server = servermodule.BitBakeServer()
208 if configParams.bind: 208 if configParams.bind:
209 (host, port) = configParams.bind.split(':') 209 (host, port) = configParams.bind.split(':')
@@ -216,7 +216,7 @@ def start_server(servermodule, configParams, configuration):
216 try: 216 try:
217 configuration.setServerRegIdleCallback(server.getServerIdleCB()) 217 configuration.setServerRegIdleCallback(server.getServerIdleCB())
218 218
219 cooker = bb.cooker.BBCooker(configuration) 219 cooker = bb.cooker.BBCooker(configuration, features)
220 220
221 server.addcooker(cooker) 221 server.addcooker(cooker)
222 server.saveConnectionDetails() 222 server.saveConnectionDetails()
@@ -296,9 +296,14 @@ def main():
296 # Clear away any spurious environment variables while we stoke up the cooker 296 # Clear away any spurious environment variables while we stoke up the cooker
297 cleanedvars = bb.utils.clean_environment() 297 cleanedvars = bb.utils.clean_environment()
298 298
299 featureset = []
300 if not configParams.server_only:
301 # Collect the feature set for the UI
302 featureset = getattr(ui_module, "featureSet", [])
303
299 if not configParams.remote_server: 304 if not configParams.remote_server:
300 # we start a server with a given configuration 305 # we start a server with a given configuration
301 server = start_server(servermodule, configParams, configuration) 306 server = start_server(servermodule, configParams, configuration, featureset)
302 bb.event.ui_queue = [] 307 bb.event.ui_queue = []
303 else: 308 else:
304 # we start a stub server that is actually a XMLRPClient that connects to a real server 309 # we start a stub server that is actually a XMLRPClient that connects to a real server
@@ -307,9 +312,6 @@ def main():
307 server.saveConnectionConfigParams(configParams) 312 server.saveConnectionConfigParams(configParams)
308 313
309 if not configParams.server_only: 314 if not configParams.server_only:
310 # Collect the feature set for the UI
311 featureset = getattr(ui_module, "featureSet", [])
312
313 if configParams.status_only: 315 if configParams.status_only:
314 try: 316 try:
315 server_connection = server.establishConnection(featureset) 317 server_connection = server.establishConnection(featureset)
@@ -326,7 +328,7 @@ def main():
326 if configParams.kill_server: 328 if configParams.kill_server:
327 bb.fatal("Server already killed") 329 bb.fatal("Server already killed")
328 configParams.bind = configParams.remote_server 330 configParams.bind = configParams.remote_server
329 start_server(servermodule, configParams, configuration) 331 start_server(servermodule, configParams, configuration, featureset)
330 bb.event.ui_queue = [] 332 bb.event.ui_queue = []
331 server_connection = server.establishConnection(featureset) 333 server_connection = server.establishConnection(featureset)
332 334