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