[PATCH v4 1/2] lib: zstd: update to latest Linux zstd 1.5.2
Tom Rini
trini at konsulko.com
Thu Jan 19 15:45:44 CET 2023
On Thu, Jan 12, 2023 at 10:27:45AM -0600, Brandon Maier wrote:
> Update the zstd implementation to match Linux zstd 1.5.2 from commit
> 2aa14b1ab2.
>
> This was motivated by running into decompression corruption issues when
> trying to uncompress files compressed with newer versions of zstd. zstd
> users also claim significantly improved decompression times with newer
> zstd versions which is a side benefit.
>
> Original zstd code was copied from Linux commit 2aa14b1ab2 which is a
> custom-built implementation based on zstd 1.3.1. Linux switched to an
> implementation that is a copy of the upstream zstd code in Linux commit
> e0c1b49f5b, this results in a large code diff. However this should make
> future updates easier along with other benefits[1].
>
> This commit is a straight mirror of the Linux zstd code, except to:
> - update a few #include that do not translate cleanly
> - linux/swab.h -> asm/byteorder.h
> - linux/limits.h -> linux/kernel.h
> - linux/module.h -> linux/compat.h
> - remove assert() from debug.h so it doesn't conflict with u-boot's
> assert()
> - strip out the compressor code as was done in the previous u-boot zstd
> - update existing zstd users to the new Linux zstd API
> - change the #define for MEM_STATIC to use INLINE_KEYWORD for codesize
> - add a new KConfig option that sets zstd build options to minify code
> based on zstd's ZSTD_LIB_MINIFY[2].
>
> These changes were tested by booting a zstd 1.5.2 compressed kernel inside a
> FIT. And the squashfs changes by loading a file from zstd compressed squashfs
> with sqfsload. buildman was used to compile test other boards and check for
> binary bloat, as follows:
>
> > $ buildman -b zstd2 --boards dh_imx6,m53menlo,mvebu_espressobin-88f3720,sandbox,sandbox64,stm32mp15_dhcom_basic,stm32mp15_dhcor_basic,turris_mox,turris_omnia -sS
> > Summary of 6 commits for 9 boards (8 threads, 1 job per thread)
> > 01: Merge branch '2023-01-10-platform-updates'
> > arm: w+ m53menlo dh_imx6
> > 02: lib: zstd: update to latest Linux zstd 1.5.2
> > aarch64: (for 2/2 boards) all -3186.0 rodata +920.0 text -4106.0
> > arm: (for 5/5 boards) all +1254.4 rodata +940.0 text +314.4
> > sandbox: (for 2/2 boards) all -4452.0 data -16.0 rodata +640.0 text -5076.0
>
> [1] https://github.com/torvalds/linux/commit/e0c1b49f5b674cca7b10549c53b3791d0bbc90a8
> [2] https://github.com/facebook/zstd/blob/f302ad8811643c428c4e3498e28f53a0578020d3/lib/libzstd.mk#L31
>
> Signed-off-by: Brandon Maier <brandon.maier at collins.com>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230119/f2174fea/attachment.sig>
More information about the U-Boot
mailing list