• Lasse Collin's avatar
    xz: adjust arch-specific options for better kernel compression · 7472ff8a
    Lasse Collin authored
    Use LZMA2 options that match the arch-specific alignment of instructions. 
    This change reduces compressed kernel size 0-2 % depending on the arch. 
    On 1-byte-aligned x86 it makes no difference and on 4-byte-aligned archs
    it helps the most.
    
    Use the ARM-Thumb filter for ARM-Thumb2 kernels.  This reduces compressed
    kernel size about 5 %.[1] Previously such kernels were compressed using
    the ARM filter which didn't do anything useful with ARM-Thumb2 code.
    
    Add BCJ filter support for ARM64 and RISC-V.  Compared to unfiltered XZ or
    plain LZMA, the compressed kernel size is reduced about 5 % on ARM64 and 7
    % on RISC-V.  A new enough version of the xz tool is required: 5.4.0 for
    ARM64 and 5.6.0 for RISC-V.  With an old xz version, a message is printed
    to standard error and the kernel is compressed without the filter.
    
    Update lib/decompress_unxz.c to match the changes to xz_wrap.sh.
    
    Update the CONFIG_KERNEL_XZ help text in init/Kconfig:
      - Add the RISC-V and ARM64 filters.
      - Clarify that the PowerPC filter is for big endian only.
      - Omit IA-64.
    
    Link: https://lore.kernel.org/lkml/1637379771-39449-1-git-send-email-zhongjubin@huawei.com/ [1]
    Link: https://lkml.kernel.org/r/20240721133633.47721-15-lasse.collin@tukaani.orgSigned-off-by: default avatarLasse Collin <lasse.collin@tukaani.org>
    Reviewed-by: default avatarSam James <sam@gentoo.org>
    Cc: Simon Glass <sjg@chromium.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Jubin Zhong <zhongjubin@huawei.com>
    Cc: Jules Maselbas <jmaselbas@zdiv.net>
    Cc: Emil Renner Berthing <emil.renner.berthing@canonical.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Joel Stanley <joel@jms.id.au>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Rui Li <me@lirui.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    7472ff8a
xz_wrap.sh 3.44 KB