Re: [RFC PATCH] x86/boot: use zstd -19 if building for 32-bit

Mingcong Bai <[email protected]> Wed, 29 Jul 2026 09:44:50 +0800
Newsgroups org.kernel.vger.linux-kbuild,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi Ard,

在 2026/7/28 23:58, Ard Biesheuvel 写道:
> 
> 
> On Tue, 28 Jul 2026, at 17:31, Mingcong Bai wrote:
>> When using native build environments (that is, 32-bit x86 chroot/container
>> as build environment for 32-bit x86 binaries), `zstd -22' requests more
>> virtual memory than that could be allowed on 32-bit hosts.
>>
>> Introduce `cmd_zstd_with_size' for CONFIG_X86_32 builds.
>>
>> This is quite possibly just stupid... But there doesn't seem to be a way
>> to detect the host environment. So I'm sending this patch as a means to
>> ask for your opinions.
>>
>> Any help would be greated appreciated.
>>
>> Signed-off-by: Mingcong Bai <[email protected]>
>> ---
>>   arch/x86/boot/compressed/Makefile | 5 +++++
>>   scripts/Makefile.lib              | 3 +++
>>   2 files changed, 8 insertions(+)
>>
> 
> Doesn't this mean ZSTD -22 is generally broken on 32-bit? How is this
> specific to the kernel?
It's not (and remains unresolved)[1] - as I mentioned in the email, I 
sent this patch out as a means to spark some discussion on how to 
approach this problem.

Nick Terrel mentioned in commit 48f7ddf785af ("init: Add support for 
zstd compressed kernel") that "zstd22 is used for kernel compression 
because it is decompressed in a single pass, so zstd doesn't need to 
allocate a window buffer." But I wonder if it resulted in tangible 
change in compression ratio - but I can do more testing.

[1]: https://github.com/facebook/zstd/issues/1964

Best Regards,
Mingcong Bai