[PATCH 1/2] kbuild: allow setting zstd compression level for modules

From: torvic9
Date: Fri Apr 09 2021 - 09:28:35 EST


Zstd offers a very fine-grained control of compression ratios.
Add a Kconfig option that allows setting the desired compression
level for module compression.

Based on Masahiro's linux-kbuild.

Signed-off-by: Tor Vic <torvic9@xxxxxxxxxxx>
Tested-by: Piotr Gorski <lucjan.lucjanov@xxxxxxxxx>
---
init/Kconfig | 8 ++++++++
scripts/Makefile.modinst | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/init/Kconfig b/init/Kconfig
index b5744d32c..15bb02c24 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -2275,6 +2275,14 @@ config MODULE_COMPRESS_ZSTD

endchoice

+config MODULE_COMPRESS_ZSTD_LEVEL
+ int "Compression level (1-19)"
+ depends on MODULE_COMPRESS_ZSTD
+ range 1 19
+ default 3
+ help
+ Compression level used by zstd for compressing modules.
+
config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
bool "Allow loading of modules with missing namespace imports"
help
diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index ff9b09e4c..0a0db2278 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -97,7 +97,7 @@ quiet_cmd_gzip = GZIP $@
quiet_cmd_xz = XZ $@
cmd_xz = $(XZ) --lzma2=dict=2MiB -f $<
quiet_cmd_zstd = ZSTD $@
- cmd_zstd = $(ZSTD) -T0 --rm -f -q $<
+ cmd_zstd = $(ZSTD) -$(CONFIG_MODULE_COMPRESS_ZSTD_LEVEL) -T0 --rm -f -q $<

$(dst)/%.ko.gz: $(dst)/%.ko FORCE
$(call cmd,gzip)
--
2.31.1