©2018 by Zach Pfeffer

SEARCH THIS SITE

Yocto 2.2.3 Based Linux Kernel Development Only 25% Efficient

May 26, 2018

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

 

Please reload

Our Recent Posts

A Fix for "You don't have permission to create items on this site: https://yoursite.sharepoint.com/sites/pwa"

September 25, 2019

Create a Tree-View of a Directory on Linux with 'tree'

August 17, 2019

Use draw.io in Google Drive (and Get Rid of draw.io )

June 30, 2019

1/1
Please reload

Tags

Please reload