Zstd-Compressed Linux Firmware Back To Being Eyed
Back in summer 2020 was a proposal for Zstd-compressed Linux firmware so that the growing number of firmware binaries shipped by the linux-firmware tree could be Zstd-compressed to save disk space while being able to more quickly decompressed the data compared to other firmware compression options.
Following that original 2020 patch proposal, one year ago Zstd firmware compression was again talked about with patches in hand but never acted upon for mainlining. This would save disk space compared to the uncompressed hundreds of megabytes of firmware files and be quicker to decompress than using XZ compression and thus a faster boot time.
That 2021 work didn't make it across the finish line while this week the discussion over Zstd-compressed Linux firmware was again resurrected. In this thread was an inquiry over its status. Takashi Iwai of SUSE who worked on the 2021 patches ended up then re-basing his prior patches and adapting to the latest Zstd API found within the Linux kernel.
This Git branch has the Zstd firmware loader work re-based against the Linux 5.17 kernel. He's hoping people will test it out and to confirm that it's working appropriately and used -- if so, he can work on getting the patches queued for mainline.
Takashi commented on the patch adding the FW_LOADER_COMPRESS_ZSTD functionality:
Following that original 2020 patch proposal, one year ago Zstd firmware compression was again talked about with patches in hand but never acted upon for mainlining. This would save disk space compared to the uncompressed hundreds of megabytes of firmware files and be quicker to decompress than using XZ compression and thus a faster boot time.
That 2021 work didn't make it across the finish line while this week the discussion over Zstd-compressed Linux firmware was again resurrected. In this thread was an inquiry over its status. Takashi Iwai of SUSE who worked on the 2021 patches ended up then re-basing his prior patches and adapting to the latest Zstd API found within the Linux kernel.
This Git branch has the Zstd firmware loader work re-based against the Linux 5.17 kernel. He's hoping people will test it out and to confirm that it's working appropriately and used -- if so, he can work on getting the patches queued for mainline.
Takashi commented on the patch adding the FW_LOADER_COMPRESS_ZSTD functionality:
Due to the popular demands on ZSTD, here is a patch to add a support of ZSTD-compressed firmware files via the direct firmware loader. It's just like XZ-compressed file support, providing a decompressor with ZSTD. Since ZSTD API can give the decompression size beforehand, the code is even simpler than XZ.
15 Comments