44 lines
1.8 KiB
Diff
44 lines
1.8 KiB
Diff
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
|
Date: Wed, 13 May 2020 20:33:46 +0200
|
|
Subject: build: compress kernel debuginfo using zstd
|
|
|
|
zstd with its default settings (compression level -3) compresses better
|
|
than bzip2 -9 (which is the default setting), and is an order of magnitude
|
|
faster.
|
|
|
|
I made the following measurements for the most common compression tools
|
|
(all standard Debian Buster versions, default flags unless noted
|
|
otherwise), using the debug information of a large x86-64 kernel with
|
|
ALL_KMODS:
|
|
|
|
* kernel-debug.tar: 376M
|
|
* kernel-debug.tar.gz: 101M, compressed in ~12s
|
|
* kernel-debug.tar.bz2: 91M, compressed in ~15s
|
|
* kernel-debug.tar.xz: 57M, compressed in ~101s
|
|
* kernel-debug.tar.zst: 86M, compressed in ~1s
|
|
|
|
With zstd, there is still some room for improvement by increasing the
|
|
compression, but the slight increase in compression ratio
|
|
(22.83% -> 19.46%) does not justify the significant increase in
|
|
compression time (about 5 times on my machine) in my opinion.
|
|
|
|
Note that multithreaded compression (-T argument) does not affect
|
|
reproducibility with zstd.
|
|
|
|
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
|
(cherry picked from commit 4bd7990488b0ca7b5cae16f0a9147a4146759053)
|
|
|
|
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
|
|
index 3fdf7efc52857a5184348cc1261848f75751b8a9..af7c3a8f0bb15c7e0d7072876705ff0bf4f9c8d1 100644
|
|
--- a/include/kernel-build.mk
|
|
+++ b/include/kernel-build.mk
|
|
@@ -70,7 +70,7 @@ ifdef CONFIG_COLLECT_KERNEL_DEBUG
|
|
$(FIND) $(KERNEL_BUILD_DIR)/debug -type f | $(XARGS) $(KERNEL_CROSS)strip --only-keep-debug
|
|
$(TAR) c -C $(KERNEL_BUILD_DIR) debug \
|
|
$(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
|
|
- | bzip2 -c -9 > $(BIN_DIR)/kernel-debug.tar.bz2
|
|
+ | zstd -T0 -f -o $(BIN_DIR)/kernel-debug.tar.zst
|
|
endef
|
|
endif
|
|
|