
This post lists the efficiency of Linux Kernel development using Yocto. It shows that developers who use Yocto to do kernel development spend at least 75% of their recompile time waiting on the Yocto build system.
Set Up
This experiment was done in VirtualBox Version 5.1.30 r118389 (Qt5.6.2) running on this computer and OS setup.
It was run in Yocto 2.2.3 included with PetaLinux Tools 2017.4 which can be set up using these instructions.
Some Data
Time to Execute BitBake
-C, no recompile
real 1m22.290s user 0m43.175s sys 0m15.436s
-f, no recompile
real 1m16.877s user 0m41.936s sys 0m14.508s
-C, recompile
real 1m40.471s user 0m56.294s sys 0m18.285s
-f, recompile
real 1m41.264s user 0m55.497s sys 0m19.174s
Some Observations
Its costs more than 1 min to use Yocto 2.2.3 in this set up.
There was a 82% Yocto 2.2.3 overhead to recompile a single Linux kernel file with -C
There was a 75% Yocto 2.2.3 overhead to recompile a single Linux kernel file with -f
These numbers imply that if your developers use Yocto to do kernel development, Yocto is costing you 75% to 82% of your development cost
The overhead suggests that using Yocto bitbake is not an efficient way to do Linux kernel development
Observing the experiment, the situation could be helped by speeding up "Initializing tasks"
Experiment
bitbake -c compile -C compile virtual/kernel
Output
Output Files Changed
Sorted Files changed
bitbake -c compile -f virtual/kernel
Output
Output Files Changed
Sorted Files Changed
diff
diff.cC.cf.nochange
touch /home/pfefferz/plprj4/mtd_board/build/tmp/work-shared/plnx_aarch64/kernel-source/init/main.c
bitbake -c compile -C compile virtual/kernel
Output
Output Files Changed
Sorted Files Changed
touch /home/pfefferz/plprj4/mtd_board/build/tmp/work-shared/plnx_aarch64/kernel-source/init/main.c
bitbake -c compile -f virtual/kernel
Output
Output Files Changed
Sorted Files Changed
diff
diff.cC.cf.change
Script
References
Yocto logo from link