+ zhangpeng,   owner of DT in Hisilicon

-----Original Message-----
From: Bill Mills [mailto:bill.mi...@linaro.org] 
Sent: 2021年2月7日 1:39
To: Jammy Zhou <jammy.z...@linaro.org>; boot-architecture@lists.linaro.org; 
Frank Rowand <frowand.l...@gmail.com>
Cc: Xiamingliang (XML, Hisilicon) <xiamingli...@huawei.com>
Subject: Re: Ideas for DT improvements

Hi Jammy & Mingliang,

On 2/5/21 2:59 AM, Jammy Zhou wrote:
> Hi,
> 
> There are several ideas for DT improvements. Please check if they are 
> reasonable, and any comments are welcome. I would let Mingliang (CCed) 
> share more details if needed.
> 
> 1) Improve search algorithm performance: Is the binary search tree or 
> other algorithm better than current algorithm?
> 

We will need data to show the problem.  I suppose this would best be done when 
unflatening the data at runtime?  What is the expected gain in boot time?  Are 
there any measurements of how much time is spent in the search routines today?

> 2) Reduce DTB space: when use one DTB to support multiple boards, the 
> image is quite big (e.g, ~39MB space for 100 configurations), and some 
> compression algorithm can reduce the space a lot (e.g, from 39MB to 7MB).
> Shall we have such compression support for DTB? And it can be helpful 
> if we can have more efficient compression algorithm.
> 

This could be done as an enhancement to the DTB loader instead of the DTB 
format itself.

Compressing each DTB (boardx.dtb.xz) will get you gains but compressing a set 
of boards (vmlinux-5.4.0-65-generic-dbt-set-20.tar.xz) might give you more.

To be significant, the number of boards would need to be large and the size of 
the rootfs would need to be modest.  A 200 to 300 MB minimal image would make 
an interesting comparison point.  (A rootfs of 10s of MB would probably only 
target a few boards.)

What is the goal of the use case?
1) Fit in limited storage ( ex: 256MB )
2) Conserve more space of modest storage for container data ( 1GB eMMC)
3) Improve boot time

For 3, the load time will be reduced but the decompression time will be added.  
These need to be balanced based on the CPU.

One pet peeve I have in most of our boot loaders today is that they do loading 
and decompression serially.  During loading the IO is 100% loaded and the CPU 
is very lightly loaded.  During decomoression the CPU is 100% loaded and the IO 
is 0%.  It makes sense to pipleline / overlap these things which means that it 
needs to go into the loader.  To optimize boot time the decompression algorithm 
needs to be chosen correctly.  On smaller CPUs the time taken to decompress 
newer algorithms can greatly outweigh the time taken to load the decompressed 
data. Ideally the time to decompress 1 block == time to load one block. 
The dynamics shift with CPU and IO performance.

Today, a lot of people focused on boot speed just use decompressed data but I 
think we could do better if we pipeline

> 3) Define specific rule for properties: The property value 
> (FDT_PROP_DATA) itself occupies only ~50% of the total DTB space. And 
> the property of each node is different and the private property name 
> length is too long, for
> example: “freq-autodown-baseaddress-num” in dt_strings. It seems more 
> reasonable that the property value should occupies more than 70% of 
> the total DTB space. It can probably be achieved to define some rules 
> to restrict the length of property name, etc.
> 

This is harder.  In 2019 I had proposed an ATOM based DTB enhancement [2].  I 
was told Frank Rowand had other proposals for format changes.

Thanks,
Bill

[2]
https://docs.google.com/document/d/19XbxN-zX-GYwOXdF78lGnp0j7UNx1MT3wzyCjaitO9E/edit?usp=sharing


> Thanks,
> Jammy
> _______________________________________________
> boot-architecture mailing list
> boot-architecture@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/boot-architecture
> 

-- 
Bill Mills
Principal Technical Consultant, Linaro
+1-240-643-0836
TZ: US Eastern
Work Schedule:  Tues/Wed/Thur
_______________________________________________
boot-architecture mailing list
boot-architecture@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/boot-architecture

Reply via email to