• Nick Desaulniers's avatar
    Makefile.debug: support for -gz=zstd · 9f8fe647
    Nick Desaulniers authored
    Make DEBUG_INFO_COMPRESSED a choice; DEBUG_INFO_COMPRESSED_NONE is the
    default, DEBUG_INFO_COMPRESSED_ZLIB uses zlib,
    DEBUG_INFO_COMPRESSED_ZSTD uses zstd.
    
    This renames the existing KConfig option DEBUG_INFO_COMPRESSED to
    DEBUG_INFO_COMPRESSED_ZLIB so users upgrading may need to reset the new
    Kconfigs.
    
    Some quick N=1 measurements with du, /usr/bin/time -v, and bloaty:
    
    clang-16, x86_64 defconfig plus
    CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_COMPRESSED_NONE=y:
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:55.43
    488M vmlinux
    27.6%   136Mi   0.0%       0    .debug_info
     6.1%  30.2Mi   0.0%       0    .debug_str_offsets
     3.5%  17.2Mi   0.0%       0    .debug_line
     3.3%  16.3Mi   0.0%       0    .debug_loclists
     0.9%  4.62Mi   0.0%       0    .debug_str
    
    clang-16, x86_64 defconfig plus
    CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_COMPRESSED_ZLIB=y:
    Elapsed (wall clock) time (h:mm:ss or m:ss): 1:00.35
    385M vmlinux
    21.8%  85.4Mi   0.0%       0    .debug_info
     2.1%  8.26Mi   0.0%       0    .debug_str_offsets
     2.1%  8.24Mi   0.0%       0    .debug_loclists
     1.9%  7.48Mi   0.0%       0    .debug_line
     0.5%  1.94Mi   0.0%       0    .debug_str
    
    clang-16, x86_64 defconfig plus
    CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_COMPRESSED_ZSTD=y:
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:59.69
    373M vmlinux
    21.4%  81.4Mi   0.0%       0    .debug_info
     2.3%  8.85Mi   0.0%       0    .debug_loclists
     1.5%  5.71Mi   0.0%       0    .debug_line
     0.5%  1.95Mi   0.0%       0    .debug_str_offsets
     0.4%  1.62Mi   0.0%       0    .debug_str
    
    That's only a 3.11% overall binary size savings over zlib, but at no
    performance regression.
    
    Link: https://maskray.me/blog/2022-09-09-zstd-compressed-debug-sections
    Link: https://maskray.me/blog/2022-01-23-compressed-debug-sectionsSuggested-by: default avatarSedat Dilek (DHL Supply Chain) <sedat.dilek@dhl.com>
    Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
    Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    9f8fe647
Makefile.debug 1.12 KB