Re: [PATCH v3 3/8] lib: add zstd support to decompress

Nick Terrell
2020-03-26T21:59:15Z

> On Mar 26, 2020, at 2:44 PM, Petr Malat <oss@malat.biz> wrote:
>
> On Thu, Mar 26, 2020 at 09:13:54PM +0000, Nick Terrell wrote:
>>>> What do you mean by that? Can you share with me the test you ran?
>>>> Is this for kernel decompression or initramfs decompression?
>>> Initramfs - you can apply my v2 patch on v5.5 and try with your test data.
>>>
>>> I have tested your patch also on ARMv7 platform and there the degradation
>>> was 8%.
>>
>> Are you comparing the performance of an 8 MB window size vs a 128 MB
>> window size?
> No, I use the same initramfs file with 2 different kernels for the test. I have
> removed
> if (params.windowSize > ZSTD_WINDOWSIZE_MAX) goto out;
> from your code.

Thanks for the clarification. I will try to reproduce the speed difference you’ve
measured before submitting v4 (that deletes the windowSize bound).

Initramfs passes the whole input buffer (doesn’t use fill), but does use flush.
Zstd always decompresses into an internal buffer, then copies into the
ZSTD_outBuffer. That means the only functional difference between the two
versions for initramfs should be that I will call flush() 4 KB at a time, and you
call flush 128 KB at a time. Naively I wouldn’t expect this to matter too much,
but I will measure.

Best,
Nick