| Submitter | Dongxiao Xu |
|---|---|
| Date | Feb. 27, 2012, 7:58 a.m. |
| Message ID | <62993ba45601c619fad5813647787b7fdbc17f7d.1330329283.git.dongxiao.xu@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/22121/ |
| State | New |
| Headers | show |
Comments
On Mon, 2012-02-27 at 15:58 +0800, Dongxiao Xu wrote: > DATE and TIME are not needed when calculating cache's hash value. > > Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> > --- > meta/conf/bitbake.conf | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index 7d0e0d8..d817bcc 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -736,7 +736,7 @@ BB_CONSOLELOG ?= "${TMPDIR}/cooker.log.${DATETIME}" > > # Setup our default hash policy > BB_SIGNATURE_HANDLER ?= "OEBasic" > -BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN" > +BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN DATE TIME" > > MLPREFIX ??= "" > MULTILIB_VARIANTS ??= "" I think this patch highlights a major difference between your hashing policy for bitbake's base configuration cache and the hash policy needed for the signatures and other sstate related pieces. With siggen, we know we have a target variable (usually a task like do_compile) and we figure out all its dependencies which we create a hash of. Its perfectly valid to have that hash depend on DATE or TIME, if it uses them and we don't want to exclude them. For the base configuration cache, we don't want to depend on DATE or TIME. We also don't have one target variable to figure out the dependencies for, we need to hash every variable with some exclusion list. My point is therefore that the above list is very different to the one bitbake needs for its cache's hash. With that in mind, we probably need to add a new variable which does something like: BB_HASHCONFIG_WHITELIST ?= "DATE TIME ${BB_HASHBASE_WHITELIST}" ? Cheers, Richard
On Mon, 2012-02-27 at 10:41 +0000, Richard Purdie wrote: > On Mon, 2012-02-27 at 15:58 +0800, Dongxiao Xu wrote: > > DATE and TIME are not needed when calculating cache's hash value. > > > > Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> > > --- > > meta/conf/bitbake.conf | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > index 7d0e0d8..d817bcc 100644 > > --- a/meta/conf/bitbake.conf > > +++ b/meta/conf/bitbake.conf > > @@ -736,7 +736,7 @@ BB_CONSOLELOG ?= "${TMPDIR}/cooker.log.${DATETIME}" > > > > # Setup our default hash policy > > BB_SIGNATURE_HANDLER ?= "OEBasic" > > -BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN" > > +BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN DATE TIME" > > > > MLPREFIX ??= "" > > MULTILIB_VARIANTS ??= "" > > I think this patch highlights a major difference between your hashing > policy for bitbake's base configuration cache and the hash policy needed > for the signatures and other sstate related pieces. > > With siggen, we know we have a target variable (usually a task like > do_compile) and we figure out all its dependencies which we create a > hash of. Its perfectly valid to have that hash depend on DATE or TIME, > if it uses them and we don't want to exclude them. > > For the base configuration cache, we don't want to depend on DATE or > TIME. We also don't have one target variable to figure out the > dependencies for, we need to hash every variable with some exclusion > list. > > My point is therefore that the above list is very different to the one > bitbake needs for its cache's hash. With that in mind, we probably need > to add a new variable which does something like: > > BB_HASHCONFIG_WHITELIST ?= "DATE TIME ${BB_HASHBASE_WHITELIST}" Yes, this change does make sense. I will send a new pull request for it. Thanks, Dongxiao > > ? > > Cheers, > > Richard > > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Patch
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 7d0e0d8..d817bcc 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -736,7 +736,7 @@ BB_CONSOLELOG ?= "${TMPDIR}/cooker.log.${DATETIME}" # Setup our default hash policy BB_SIGNATURE_HANDLER ?= "OEBasic" -BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN" +BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN DATE TIME" MLPREFIX ??= "" MULTILIB_VARIANTS ??= ""
DATE and TIME are not needed when calculating cache's hash value. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> --- meta/conf/bitbake.conf | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)