lkml.org 
[lkml]   [2023]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/3] ARM ZSTD boot compression
On Wed, Apr 12, 2023, at 23:33, Arnd Bergmann wrote:
> On Wed, Apr 12, 2023, at 23:21, Jonathan Neuschäfer wrote:
>> This patchset enables ZSTD kernel (de)compression on 32-bit ARM.
>> Unfortunately, it is much slower than I hoped (tested on ARM926EJ-S):
>>
>> - LZO: 7.2 MiB, 6 seconds
>> - ZSTD: 5.6 MiB, 60 seconds
>
> That seems unexpected, as the usual numbers say it's about 25%
> slower than LZO. Do you have an idea why it is so much slower
> here? How long does it take to decompress the
> generated arch/arm/boot/Image file in user space on the same
> hardware using lzop and zstd?

I looked through this a bit more and found two interesting points:

- zstd uses a lot more unaligned loads and stores while
decompressing. On armv5 those turn into individual byte
accesses, while the others can likely use word-aligned
accesses. This could make a huge difference if caches are
disabled during the decompression.

- The sliding window on zstd is much larger, with the kernel
using an 8MB window (zstd=23), compared to the normal 32kb
for deflate (couldn't find the default for lzo), so on
machines with no L2 cache, it is much likely to thrash a
small L1 dcache that are used on most arm9.

Arnd

\
 
 \ /
  Last update: 2023-04-13 19:06    [W:0.085 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site