APPLIED: [SRU][kernel-snaps-uc20][PATCH 0/1] Ucore kernel snap size: netronome smartnic fw (LP: #1951422)

Juerg Haefliger juerg.haefliger at canonical.com
Thu Jan 20 15:42:54 UTC 2022


Applied to kernel-snaps-uc20 master branch.

...Juerg


> [ Impact ]
> 
> Pi kernel snaps are big in part due to included firmware binaries. A lot of these binaries are not needed/required by the Pi kernel. The size of the snap has a negative impact on boot speed.
> 
> [ Fix ]
> 
> Parse modinfo data from all modules to determine the list of required firmware files and remove the ones that are not necessary during snap build time.
> 
> [ Test Case ]
> 
> On core20 before:
> $ du -sh /lib/firmware/
> 602M	/lib/firmware/
> 
> And after:
> $ du -sh /lib/firmware/
> 58M	/lib/firmware/
> 
> [ Where Problems Could Occur ]
> 
> We might accidentally drop needed firmware which might render the relevant HW unusable. Firmware load failures should be visible in the kernel log though.
> 
> [ Original Description ]
> 
> The size of the pi-kernel snap for UC20 is 254Mbytes (compressed) and
> 794Mbytes (uncompressed).
> 
> 569Mbyte of this is caused by FW
> 
> 140Mbyte -> Netronome SmartNIC
> 
> Removing unreferenced FW and/or reducing number of drivers & their FW has exponential reduction of disk space usage.
> 
> Additionally, downloaded image will be smaller; and storing 3x kernel snaps for upgrades will be smaller.
> 
> Even more, snap seeding will be faster, so boot time will be faster.
> 
> So it will be a nice gain in multiple aspects: download image, boot image, upgrade image, reboot image, start using image.
> 
> stulluk ~/tmp $  ls -lah pi-kernel_353.snap
> -rw------- 1 stulluk stulluk 254M Kas  8 13:57 pi-kernel_353.snap
> stulluk ~/tmp $  cd pikern/
> stulluk ~/tmp/pikern $  du -sh
> 794M	.
> stulluk ~/tmp/pikern $  cd firmware/
> stulluk ~/tmp/pikern/firmware $  du --block-size=MiB --max-depth=1 . | sort -rn
> 569MiB	.
> 140MiB	./netronome
> 40MiB	./amdgpu
> 34MiB	./intel
> 25MiB	./liquidio
> 24MiB	./qcom
> 20MiB	./qed
> 19MiB	./brcm
> 12MiB	./mellanox
> 12MiB	./dpaa2
> 12MiB	./ath10k
> ...
> 
> Juerg Haefliger (1):
>   Remove unnecessary firmware binaries
> 
>  Makefile      |  4 ++++
>  trim-firmware | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 60 insertions(+)
>  create mode 100755 trim-firmware
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20220120/28d39a52/attachment.sig>


More information about the kernel-team mailing list