Re: [PATCH] initramfs: don't double-compress built-in initramfs if the kernel is compressed

From: Masahiro Yamada
Date: Mon Feb 03 2020 - 21:27:59 EST


Hi.

On Tue, Feb 4, 2020 at 6:16 AM Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote:
>
> If the kernel is going to be compressed anyway, there is no point in
> double-compressing the built-in initramfs. Hide the built-in initramfs
> compression choice in this case.
>
> Signed-off-by: Arvind Sankar <nivedita@xxxxxxxxxxxx>


Double-compression slightly reduces the data size.
And, keeping the bare vmlinux small is beneficial, IMHO.




> ---
> init/Kconfig | 9 +++++++++
> usr/Kconfig | 2 +-
> 2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/init/Kconfig b/init/Kconfig
> index 24b23d843df1..88da0976bbfa 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -176,6 +176,9 @@ config HAVE_KERNEL_LZ4
> config HAVE_KERNEL_UNCOMPRESSED
> bool
>
> +config KERNEL_COMPRESSED
> + bool
> +
> choice
> prompt "Kernel compression mode"
> default KERNEL_GZIP
> @@ -201,6 +204,7 @@ choice
> config KERNEL_GZIP
> bool "Gzip"
> depends on HAVE_KERNEL_GZIP
> + select KERNEL_COMPRESSED
> help
> The old and tried gzip compression. It provides a good balance
> between compression ratio and decompression speed.
> @@ -208,6 +212,7 @@ config KERNEL_GZIP
> config KERNEL_BZIP2
> bool "Bzip2"
> depends on HAVE_KERNEL_BZIP2
> + select KERNEL_COMPRESSED
> help
> Its compression ratio and speed is intermediate.
> Decompression speed is slowest among the choices. The kernel
> @@ -218,6 +223,7 @@ config KERNEL_BZIP2
> config KERNEL_LZMA
> bool "LZMA"
> depends on HAVE_KERNEL_LZMA
> + select KERNEL_COMPRESSED
> help
> This compression algorithm's ratio is best. Decompression speed
> is between gzip and bzip2. Compression is slowest.
> @@ -226,6 +232,7 @@ config KERNEL_LZMA
> config KERNEL_XZ
> bool "XZ"
> depends on HAVE_KERNEL_XZ
> + select KERNEL_COMPRESSED
> help
> XZ uses the LZMA2 algorithm and instruction set specific
> BCJ filters which can improve compression ratio of executable
> @@ -241,6 +248,7 @@ config KERNEL_XZ
> config KERNEL_LZO
> bool "LZO"
> depends on HAVE_KERNEL_LZO
> + select KERNEL_COMPRESSED
> help
> Its compression ratio is the poorest among the choices. The kernel
> size is about 10% bigger than gzip; however its speed
> @@ -249,6 +257,7 @@ config KERNEL_LZO
> config KERNEL_LZ4
> bool "LZ4"
> depends on HAVE_KERNEL_LZ4
> + select KERNEL_COMPRESSED
> help
> LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
> A preliminary version of LZ4 de/compression tool is available at
> diff --git a/usr/Kconfig b/usr/Kconfig
> index bdf5bbd40727..f39eeb9ea2e3 100644
> --- a/usr/Kconfig
> +++ b/usr/Kconfig
> @@ -102,7 +102,7 @@ config RD_LZ4
>
> choice
> prompt "Built-in initramfs compression mode"
> - depends on INITRAMFS_SOURCE != ""
> + depends on INITRAMFS_SOURCE != "" && !KERNEL_COMPRESSED
> help
> This option allows you to decide by which algorithm the builtin
> initramfs will be compressed. Several compression algorithms are
> --
> 2.24.1
>


--
Best Regards
Masahiro Yamada