[bitbake-devel,v2] bitbake: cooker: Rename __depends in all multiconfigs

Submitted by Joshua Watt on May 22, 2019, 1:35 p.m. | Patch ID: 161513

Details

Message ID 20190522133503.14212-1-JPEWhacker@gmail.com
State New
Headers show

Commit Message

Joshua Watt May 22, 2019, 1:35 p.m.
The renaming of the __depends variable to __base_depends and file
watches needs to occurs for all multiconfigs, not just the base config.
Failing to do this for all multiconfigs will result in a huge increase
in the size of the parsing cache (about 5x for a single mulitconfig)
because all multiconfig caches will still depend on the base config
files. This will also seen a similar jump in the amount of time required
to load the parsing cache from memory, both because the cache is larger
and because of explosion of additional existence checks that must be
done for the base files.

[YOCTO #13359]

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 bitbake/lib/bb/cooker.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index adc41014e6..78658a1683 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -391,8 +391,9 @@  class BBCooker:
         if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
             self.disableDataTracking()
 
-        self.data.renameVar("__depends", "__base_depends")
-        self.add_filewatch(self.data.getVar("__base_depends", False), self.configwatcher)
+        for mc in self.databuilder.mcdata.values():
+            mc.renameVar("__depends", "__base_depends")
+            self.add_filewatch(mc.getVar("__base_depends", False), self.configwatcher)
 
         self.baseconfig_valid = True
         self.parsecache_valid = False

Comments

Joshua Watt May 29, 2019, 3:37 p.m.
Ping

On 5/22/19 8:35 AM, Joshua Watt wrote:
> The renaming of the __depends variable to __base_depends and file
> watches needs to occurs for all multiconfigs, not just the base config.
> Failing to do this for all multiconfigs will result in a huge increase
> in the size of the parsing cache (about 5x for a single mulitconfig)
> because all multiconfig caches will still depend on the base config
> files. This will also seen a similar jump in the amount of time required
> to load the parsing cache from memory, both because the cache is larger
> and because of explosion of additional existence checks that must be
> done for the base files.
>
> [YOCTO #13359]
>
> Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
> ---
>   bitbake/lib/bb/cooker.py | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
> index adc41014e6..78658a1683 100644
> --- a/bitbake/lib/bb/cooker.py
> +++ b/bitbake/lib/bb/cooker.py
> @@ -391,8 +391,9 @@ class BBCooker:
>           if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
>               self.disableDataTracking()
>   
> -        self.data.renameVar("__depends", "__base_depends")
> -        self.add_filewatch(self.data.getVar("__base_depends", False), self.configwatcher)
> +        for mc in self.databuilder.mcdata.values():
> +            mc.renameVar("__depends", "__base_depends")
> +            self.add_filewatch(mc.getVar("__base_depends", False), self.configwatcher)
>   
>           self.baseconfig_valid = True
>           self.parsecache_valid = False