Patchwork [1/1] bitbake.conf: Add DATE and TIME to BB_HASH_WHITELIST

login
register
mail settings
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

Dongxiao Xu - Feb. 27, 2012, 7:58 a.m.
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(-)
Richard Purdie - Feb. 27, 2012, 10:41 a.m.
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
Dongxiao Xu - Feb. 27, 2012, 2:01 p.m.
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 ??= ""