libfdt update increase boot time
Simon Glass
sjg at chromium.org
Thu Jan 16 19:13:13 CET 2020
Hi Patrice,
On Fri, 17 Jan 2020 at 06:56, Patrice CHOTARD <patrice.chotard at st.com> wrote:
>
> 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.
I think it would be worth having an option to use a simple read
instead of the unaligned handling of fdt32_ld. We could have it as an
assumption, e.g. fdt_chk_alignment().
Regards,
Simon
>
>
> 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