Bug 4142 - Avoid cache reload for incremental development using a backgrounded bitbake server
Summary: Avoid cache reload for incremental development using a backgrounded bitbake s...
Status: VERIFIED FIXED
Alias: None
Product: BitBake
Classification: Build System, Metadata & Runtime
Component: bitbake (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium+ enhancement
Target Milestone: 1.5 M4
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on: 3812
Blocks: 4689
  Show dependency tree
 
Reported: 2013-03-28 16:17 UTC by Jason Wessel
Modified: 2013-09-30 12:18 UTC (History)
4 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Done (doc changes complete)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Wessel 2013-03-28 16:17:34 UTC
Long ago Richard Purdie surmised it would be possible to avoid the penalty of loading the bitbake cache by simply not exiting the main bitbake server context and instead using a lightweight communication mechasim to instruct the bitbake server to execute additional opperations.

This would greatly speed up incremental tasks such as launching the dev shell or a re-compile operation on a single package when using bitbake for incremental development as opposed to its more typical use case of batching builds/task to completion.

This probably invovles the defect 4141 in that the the bitbake startup will have to change in order to accomodate automatically forking a bitbake server into the background to handle requests as well as sending the requests to the bitbake server.
Comment 1 Richard Purdie 2013-06-17 16:12:14 UTC
As of the commits today, http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=baff2630b3c883c37bcc33d984453e14a0d4a206 it is possible to setup a bitbake server and use the BBSERVER variable to connect to it.

This is still experimental and not the default mode of operation but we're heading in the right direction.
Comment 2 Richard Purdie 2013-09-05 15:25:09 UTC
This is now possible and illustrated by the new env init script  added in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=5f2170bd4a9503da9ec01de3823b257b78d82b5c
Comment 3 Stoicescu Cornel 2013-09-24 11:57:26 UTC
The server works as intended, there is very little cache loading time when switching from qemux86-64 to qemux86 in local.conf and bitbaking a recipe like 'man'

Test case created: https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=810

I would like to mention that there are issues when switching from the experimental method to the old stable one during the same shell session(something is left behind by the sourced environment script that is not erased by 'bitbake -m'). 

Also:

I see a doc change flag on this. Has this been addressed?

Waiting for an answer before setting this to VERIFIED.
Comment 4 Richard Purdie 2013-09-30 08:35:07 UTC
I believe Scott did add documentation for this. Re: the unsetting the BBSERVER variable, we should open up a separate bug to track that specific issue.
Comment 5 Stoicescu Cornel 2013-09-30 12:18:09 UTC
Setting to Verified as per above comments.