Hi,

I'm looking for some advice on how to track down why sstate cache isn't being 
used in some builds for some recipes/tasks.

I don't have a specific problem right now but I often run into a scenario where 
builds are taking much longer than expected on a developers machine. It usually 
comes down to an early dependency having changed for some reason (for example a 
recent one was a sneaky build path dependency in a Xilinx recipe).

To complicate things we:
- Build across many machines (developers and build servers etc).
- Have multiple sstate caches (developer local, our network cache, Xilinx 
internet cache).
- Have multiple boards that build with largely overlapping sets of recipes but 
differ in the contents of a few low level ones like the device tree (which is a 
dependency of the kernel so the kernel changes, then our drivers change, then 
our applications change, etc). This makes finding the sstate cache file that 
hasn't been used this time (when it normally would be) hard to identify as 
there are often lots of versions of cache for a single recipe in the various 
caches.
- Have a few recipes that will change almost every build (putting build version 
numbers into the image for example).
- Use Xilinx PetaLinux tools.

What is the best way of tracking down the specific task that has changed and 
caused a whole swathe of others to rebuild?

Currently I have a mostly manual process of try and guess the earliest recipes 
(by looking at the first few non-setscene tasks in the logs). Then compare the 
stamps against the relevant siginfo files in the various caches and try to find 
the most recent one, which i can then bitbake-diffsigs against to find a 
difference. Often this is in a dependency and then I have to manually track the 
changes again till I find a concrete difference to investigate.

I've tried to write my own tool to investigate but not gotten very far as I run 
into the complexities of the sstate and trying to work out things like the 
SSTATE_VERSION and SSTATE_PKGARCH. I also can't see a good way of searching the 
webserver that hosts the sstate cache for a near miss cache file as I won't 
know the checksum from the build!

I feel like i must be missing an easier way here? Or I'm going about this in 
the wrong way?

Any advice would be greatly appreciated.

Best Regards,
Phil Dawson
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#64577): https://lists.yoctoproject.org/g/yocto/message/64577
Mute This Topic: https://lists.yoctoproject.org/mt/110665827/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to