Linux 6.2 Allows For Zstd-Compressed Debug Information
In addition to Linux 6.2 upgrading its Zstd implementation for speedier compression/decompression for in-kernel uses of the Zstandard compression algorithm, this new kernel version is adding another Zstd use-case: compressed debug info sections.
The Linux kernel already allows compressing debug information in the kernel using Zlib while now with Linux 6.2 that is being extended to allow for optionally using Zstd for compressing the debug info.
Using Zstd for compressing debug information sections can yield smaller file sizes than Zlib, assuming you are on a recent compiler and with a new enough toolchain supporting Zstd. Tests by Google engineer Nick Desaulniers found that uncompressed debug info from a kernel build was around 488M, 385M with the existing Zlib compression, or dropped to about 373M with the new Zstd support. The few percent in binary size savings may not be too great over Zlib, but it came with no performance regression or added time costs.
The Zstd-compressed debug sections on Linux 6.2 can be enabled with the new DEBUG_INFO_COMPRESSED_ZSTD Kconfig option.
The Zstd-compressed debug info was sent in and merged as part of the Kbuild updates for Linux 6.2 along with -Werror build improvements, the "srcrpm-pkg" target to generate a source RPM package of the kernel, raising the GNU Binutils requirement to v2.25, and other build updates.
The Linux kernel already allows compressing debug information in the kernel using Zlib while now with Linux 6.2 that is being extended to allow for optionally using Zstd for compressing the debug info.
Using Zstd for compressing debug information sections can yield smaller file sizes than Zlib, assuming you are on a recent compiler and with a new enough toolchain supporting Zstd. Tests by Google engineer Nick Desaulniers found that uncompressed debug info from a kernel build was around 488M, 385M with the existing Zlib compression, or dropped to about 373M with the new Zstd support. The few percent in binary size savings may not be too great over Zlib, but it came with no performance regression or added time costs.
The Zstd-compressed debug sections on Linux 6.2 can be enabled with the new DEBUG_INFO_COMPRESSED_ZSTD Kconfig option.
The Zstd-compressed debug info was sent in and merged as part of the Kbuild updates for Linux 6.2 along with -Werror build improvements, the "srcrpm-pkg" target to generate a source RPM package of the kernel, raising the GNU Binutils requirement to v2.25, and other build updates.
4 Comments