Hi Simon, On Thu, 1 Jun 2023 at 14:10, Jonathan Liu <net...@gmail.com> wrote: > On Thu, 1 Jun 2023 at 11:27, Jonathan Liu <net...@gmail.com> wrote: > > On Thu, 1 Jun 2023 at 03:13, Simon Glass <s...@chromium.org> wrote: > > > On Wed, 31 May 2023 at 06:52, Jonathan Liu <net...@gmail.com> wrote: > > > > > > > > Hi All, > > > > > > > > I noticed that loading from squashfs with zstd compression is > > > > significantly slower than ext4 on RK3399 using U-Boot 2022.01. The > > > > filesystem is located on eMMC. > > > > > > > > I have CONFIG_BLOCK_CACHE=y in .config and am using the generic load > > > > command. > > > > > > > > ext4: > > > > 15682578 bytes read in 366 ms (40.9 MiB/s) > > > > > > > > SquashFS with zstd compression: > > > > 15685001 bytes read in 2339 ms (6.4 MiB/s) > > > > > > > > Any suggestions on how to speed up loading from SquashFS with zstd > > > > compression? > > > > > > > > Could it just be that zstd is slow? Have you tried lz4? > > > > > > > > I tried LZ4 but get "Error: unknown compression type." > > It seems the SquashFS decompressor only supports lzo, gzip and zstd - > > https://source.denx.de/u-boot/u-boot/-/blob/master/fs/squashfs/sqfs_decompressor.c > > > > ext4: > > 15682578 bytes read in 366 ms (40.9 MiB/s) > > > > SquashFS with lzo compression (~129 MiB squashfs): > > 15686657 bytes read in 1032 ms (14.5 MiB/s) > > > > SquashFS with gzip compression (~116 MiB squashfs): > > 15686657 bytes read in 1494 ms (10 MiB/s) > > > > SquashFS with zstd compression (~107 MiB squashfs): > > 15685001 bytes read in 2339 ms (6.4 MiB/s) > > SquashFS with zstd compression seems to be even slower after zstd was > updated to 1.5.2 in U-Boot. > > SquashFS with zstd compression (~107 MiB squashfs), with zstd 1.5.2 > update cherry-picked from > https://source.denx.de/u-boot/u-boot/-/commit/4b9b25d943ff95c7421cab261333fc29852fe3b1: > 15686657 bytes read in 2726 ms (5.5 MiB/s)
If I use unsquashfs on the same board to decompress the same file using a single processor, it is much faster: # sync; echo 3 > /proc/sys/vm/drop_caches; time unsquashfs -p 1 /dev/mmcblk1p1 /boot/test-file Parallel unsquashfs: Using 1 processor 1 inodes (120 blocks) to write [=========================================================================================================|] 120/120 100% created 1 files created 2 directories created 0 symlinks created 0 devices created 0 fifos real 0m 0.19s user 0m 0.16s sys 0m 0.12s Regards, Jonathan