libfdt update increase boot time

Patrice CHOTARD patrice.chotard at st.com
Thu Jan 16 18:56:27 CET 2020


Hi All

Since the last sync of libfdt [1], boot time increase of 2.3 seconds on STM32MP1 dk2 board

On v2020.1 tag:

STM32MP> bootstage report
Timer summary in microseconds (9 records):
       Mark    Elapsed  Stage
          0          0  reset
    571,804    571,804  board_init_f
  3,535,935  2,964,131  board_init_r
  3,954,721    418,786  id=64
  4,006,006     51,285  id=65
  4,006,708        702  main_loop
  4,559,423    552,715  id=175

After reverting 'f0921f5098d8 (dt: Sync up to the latest libfdt)', boot time was restored:

STM32MP>  bootstage report
Timer summary in microseconds (9 records):
       Mark    Elapsed  Stage
          0          0  reset
    568,918    568,918  board_init_f
  1,801,471  1,232,553  board_init_r
  2,074,570    273,099  id=64
  2,101,242     26,672  id=65
  2,101,944        702  main_loop
  3,229,354  1,127,410  id=175

After some investigation, the new implementation of fdt32_ld() is responsible of this time consuming.

Same issue has been already encountered on TF-A side [2]. TF-A community has decided to not update libfdt with v1.4.7

and stayed on the previous one v1.4.6 to avoid similar regression.


Thanks

Patrice


[1] https://patchwork.ozlabs.org/cover/1185039/

[2] https://github.com/dgibson/dtc/issues/19



More information about the U-Boot mailing list