Re: [PATCH] Use CRC32 and a 1MiB dictionary for XZ compressed modules

From: Martin Nybo Andersen
Date: Fri Sep 22 2023 - 04:52:22 EST


On Fri, 22 Sep 2023, Tor Vic wrote:


Hello?

Hello,

:)

Anyone?

Best regards,
- Martin

On Fri, 15 Sep 2023, Martin Nybo Andersen wrote:

Kmod is now using the kernel decompressor which doesn't handle CRC64
and dictionaries larger than 1MiB.

Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050582
Signed-off-by: Martin Nybo Andersen <tweek@xxxxxxxx>
---
scripts/Makefile.modinst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index c59cc57286ba..ffbafbd3aeea 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -144,7 +144,7 @@ endif
quiet_cmd_gzip = GZIP    $@
      cmd_gzip = $(KGZIP) -n -f $<
quiet_cmd_xz = XZ      $@
-      cmd_xz = $(XZ) --lzma2=dict=2MiB -f $<
+      cmd_xz = $(XZ) --check=crc32 --lzma2=dict=1MiB -f $<

I wonder whether it should be guarded with
ifdef CONFIG_MODULE_DECOMPRESS

But on the other hand, the difference between 1M and 2M is likely very small in terms of compression ratio.

That would work, since kmod decompress the modules in userspace if CONFIG_MODULE_DECOMPRESS if off.

What I'm aiming for is just that the kernel should be able to decompress its own modules, when it advertises it.

Cheers,
Martin

Cheers,
Tor Vic

quiet_cmd_zstd = ZSTD    $@
      cmd_zstd = $(ZSTD) -T0 --rm -f -q $<

--
2.40.1