I’ve always built my Yocto-based images using the processes outlined in the various Toradex articles, using Toradex console images as the base/reference. My workstation has 12 cores (24 threads), and throughout the build process, all 24 threads are at/around 100% utilisation as one would expect. A complete build takes somewhere in the vicinity of ~2 hours.
I’m now in the process of using Boot2Qt, and while the build process is essentially the same (it’s still just a Yocto build), I’m finding strange performance differences. When building the standard ‘b2qt-embedded-qt5-image’ image, I’m finding the following:
- The do_fetch() processes for each of the packages are extremely slow. I have a 100Mbit connection, and when building a Toradex Yocto image the packages are fetched quickly as you’d expect. When building using Boot2Qt, the do_fetch() download speeds are minute. For example, do_fetch() of linux-toradex-4.14-2.0.x+gitAUTOINC+fff496c2a1-r0 is currently sitting at around ~40KB/s.
- The bitbake system utilisation is nowhere near the level I’d expect. As per above, I see 100% utilisation across all 24 threads when building a Toradex-based Yocto image, but when building in the Boot2Qt-based environment, the average utilisation across the 24 threads is somewhere between 5% and 20%.
The combination of the above two issues means that the Boot2Qt build is going to take a considerably longer time than a similar Toradex-based build. For example, I’ve been building the ‘b2qt-embedded-qt5-image’ image for 2 hours now and it’s only at 19%, with many processes still in the do_fetch() phase, downloading at <50KB/s.
Have you encountered performance issues such as these when using Boot2Qt?