[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 13 15:14:55 UTC 2022
[ 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
--
2.30.2
More information about the kernel-team
mailing list