* [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image
@ 2024-07-26 19:49 Sedat Dilek
2024-07-26 20:41 ` Linus Torvalds
0 siblings, 1 reply; 6+ messages in thread
From: Sedat Dilek @ 2024-07-26 19:49 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel,
Linus Torvalds
Cc: Sedat Dilek
The COMPRESSED_INSTALL does not sound very meaningful.
Rename from COMPRESSED_INSTALL kconfig to KERNEL_IMAGE_COMPRESSED_INSTALL.
Fixes: commit 4c7be57f2 ("arm64: allow installing compressed image by default")
Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
---
arch/arm64/Kconfig | 4 ++--
arch/arm64/Makefile | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index ae527d1d409f..d9f771c788d7 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -2337,8 +2337,8 @@ config EFI
allow the kernel to be booted as an EFI application. This
is only useful on systems that have UEFI firmware.
-config COMPRESSED_INSTALL
- bool "Install compressed image by default"
+config KERNEL_IMAGE_COMPRESSED_INSTALL
+ bool "Install compressed kernel image by default"
help
This makes the regular "make install" install the compressed
image we built, not the legacy uncompressed one.
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index f6bc3da1ef11..1d9b4978eb98 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -182,7 +182,7 @@ $(BOOT_TARGETS): vmlinux
Image.%: Image
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-ifeq ($(CONFIG_COMPRESSED_INSTALL),y)
+ifeq ($(CONFIG_KERNEL_IMAGE_COMPRESSED_INSTALL),y)
DEFAULT_KBUILD_IMAGE = $(KBUILD_IMAGE)
else
DEFAULT_KBUILD_IMAGE = $(boot)/Image
@@ -235,8 +235,8 @@ define archhelp
echo '* Image.gz - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)'
echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
echo ' image.fit - Flat Image Tree (arch/$(ARCH)/boot/image.fit)'
- echo ' install - Install kernel (compressed if COMPRESSED_INSTALL set)'
- echo ' zinstall - Install compressed kernel'
+ echo ' install - Install kernel image (compressed if KERNEL_IMAGE_COMPRESSED_INSTALL is set)'
+ echo ' zinstall - Install compressed kernel image'
echo ' Install using (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or'
echo ' install to $$(INSTALL_PATH) and run lilo'
--
2.45.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image
2024-07-26 19:49 [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image Sedat Dilek
@ 2024-07-26 20:41 ` Linus Torvalds
2024-07-26 20:54 ` Sedat Dilek
0 siblings, 1 reply; 6+ messages in thread
From: Linus Torvalds @ 2024-07-26 20:41 UTC (permalink / raw)
To: Sedat Dilek; +Cc: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel
On Fri, 26 Jul 2024 at 12:51, Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> The COMPRESSED_INSTALL does not sound very meaningful.
Why do you care? The question looks like this:
Install compressed image by default (COMPRESSED_INSTALL) [N/y/?] (NEW)
which actually fits on a line and makes perfect sense.
Your patch seems to only make things worse for no real gain.
Linus
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image
2024-07-26 20:41 ` Linus Torvalds
@ 2024-07-26 20:54 ` Sedat Dilek
2024-07-26 21:47 ` Linus Torvalds
0 siblings, 1 reply; 6+ messages in thread
From: Sedat Dilek @ 2024-07-26 20:54 UTC (permalink / raw)
To: Linus Torvalds
Cc: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel
On Fri, Jul 26, 2024 at 10:42 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Fri, 26 Jul 2024 at 12:51, Sedat Dilek <sedat.dilek@gmail.com> wrote:
> >
> > The COMPRESSED_INSTALL does not sound very meaningful.
>
> Why do you care? The question looks like this:
>
> Install compressed image by default (COMPRESSED_INSTALL) [N/y/?] (NEW)
>
> which actually fits on a line and makes perfect sense.
>
> Your patch seems to only make things worse for no real gain.
>
Yes, the new kconfig is longer - not ideal.
And when you check a diff of two of your ARM64 .config?
What says COMPRESSED_INSTALL to other than the author w/o context :-)?
You are right, why should I care - I have no ARM54 hardware.
-Sedat.
-Sedat-
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image
2024-07-26 20:54 ` Sedat Dilek
@ 2024-07-26 21:47 ` Linus Torvalds
2024-07-27 11:50 ` Emil Renner Berthing
0 siblings, 1 reply; 6+ messages in thread
From: Linus Torvalds @ 2024-07-26 21:47 UTC (permalink / raw)
To: sedat.dilek; +Cc: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel
On Fri, 26 Jul 2024 at 13:54, Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> And when you check a diff of two of your ARM64 .config?
> What says COMPRESSED_INSTALL to other than the author w/o context :-)?
Even without any context, I think it says "compressed install".
Which seems sensible. Because THAT'S EXACTLY WHAT IT IS.
Now, admittedly I would have preferred not having a config option for
this at all, but we have a sad historical situation of doing something
odd on arm (and parisc).
The RISC-V people used to do the same, but they decided to just make
'install' do whatever image was built, so they base it on a
combination of different config variables: CONFIG_XIP_KERNEL,
CONFIG_RISCV_M_MODE, CONFIG_SOC_CANAAN_K210, and CONFIG_EFI_ZBOOT.
I considered just using our pre-existing CONFIG_EFI_ZBOOT variable,
but without knowing what the different boot loaders do...
Linus
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image
2024-07-26 21:47 ` Linus Torvalds
@ 2024-07-27 11:50 ` Emil Renner Berthing
2024-07-30 1:23 ` Sedat Dilek
0 siblings, 1 reply; 6+ messages in thread
From: Emil Renner Berthing @ 2024-07-27 11:50 UTC (permalink / raw)
To: Linus Torvalds, sedat.dilek
Cc: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel
Linus Torvalds wrote:
> On Fri, 26 Jul 2024 at 13:54, Sedat Dilek <sedat.dilek@gmail.com> wrote:
> >
> > And when you check a diff of two of your ARM64 .config?
> > What says COMPRESSED_INSTALL to other than the author w/o context :-)?
>
> Even without any context, I think it says "compressed install".
>
> Which seems sensible. Because THAT'S EXACTLY WHAT IT IS.
>
> Now, admittedly I would have preferred not having a config option for
> this at all, but we have a sad historical situation of doing something
> odd on arm (and parisc).
>
> The RISC-V people used to do the same, but they decided to just make
> 'install' do whatever image was built, so they base it on a
> combination of different config variables: CONFIG_XIP_KERNEL,
> CONFIG_RISCV_M_MODE, CONFIG_SOC_CANAAN_K210, and CONFIG_EFI_ZBOOT.
With the approach taken by RISC-V you can choose which compression you want
(including uncompressed) and not just gzip. For arm64 it would look something
like this:
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index ae527d1d409f..a99864491703 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -234,6 +234,13 @@ config ARM64
select HAVE_RUST if CPU_LITTLE_ENDIAN
select HAVE_STACKPROTECTOR
select HAVE_SYSCALL_TRACEPOINTS
+ select HAVE_KERNEL_BZIP2 if !EFI_ZBOOT
+ select HAVE_KERNEL_GZIP if !EFI_ZBOOT
+ select HAVE_KERNEL_LZ4 if !EFI_ZBOOT
+ select HAVE_KERNEL_LZMA if !EFI_ZBOOT
+ select HAVE_KERNEL_LZO if !EFI_ZBOOT
+ select HAVE_KERNEL_UNCOMPRESSED if !EFI_ZBOOT
+ select HAVE_KERNEL_ZSTD if !EFI_ZBOOT
select HAVE_KPROBES
select HAVE_KRETPROBES
select HAVE_GENERIC_VDSO
@@ -2337,17 +2344,6 @@ config EFI
allow the kernel to be booted as an EFI application. This
is only useful on systems that have UEFI firmware.
-config COMPRESSED_INSTALL
- bool "Install compressed image by default"
- help
- This makes the regular "make install" install the compressed
- image we built, not the legacy uncompressed one.
-
- You can check that a compressed image works for you by doing
- "make zinstall" first, and verifying that everything is fine
- in your environment before making "make install" do this for
- you.
-
config DMI
bool "Enable support for SMBIOS (DMI) tables"
depends on EFI
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index f6bc3da1ef11..b798875311aa 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -159,18 +159,21 @@ libs-y := arch/arm64/lib/ $(libs-y)
libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
# Default target when executing plain make
-boot := arch/arm64/boot
+boot := arch/arm64/boot
+boot-image-y := Image
+boot-image-$(CONFIG_KERNEL_BZIP2) := Image.bz2
+boot-image-$(CONFIG_KERNEL_GZIP) := Image.gz
+boot-image-$(CONFIG_KERNEL_LZ4) := Image.lz4
+boot-image-$(CONFIG_KERNEL_LZMA) := Image.lzma
+boot-image-$(CONFIG_KERNEL_LZO) := Image.lzo
+boot-image-$(CONFIG_KERNEL_ZSTD) := Image.zst
+boot-image-$(CONFIG_EFI_ZBOOT) := vmlinuz.efi
-BOOT_TARGETS := Image vmlinuz.efi image.fit
+KBUILD_IMAGE := $(boot)/$(boot-image-y)
+BOOT_TARGETS := Image Image.bz2 Image.gz Image.lz4 Image.lzma
Image.lzo Image.zst vmlinuz.efi image.fit
PHONY += $(BOOT_TARGETS)
-ifeq ($(CONFIG_EFI_ZBOOT),)
-KBUILD_IMAGE := $(boot)/Image.gz
-else
-KBUILD_IMAGE := $(boot)/vmlinuz.efi
-endif
-
all: $(notdir $(KBUILD_IMAGE))
image.fit: dtbs
@@ -182,13 +185,8 @@ $(BOOT_TARGETS): vmlinux
Image.%: Image
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-ifeq ($(CONFIG_COMPRESSED_INSTALL),y)
- DEFAULT_KBUILD_IMAGE = $(KBUILD_IMAGE)
-else
- DEFAULT_KBUILD_IMAGE = $(boot)/Image
-endif
-
-install: KBUILD_IMAGE := $(DEFAULT_KBUILD_IMAGE)
+# the install target always installs KBUILD_IMAGE (which may be compressed)
+# but keep the zinstall target for compatibility with older releases
install zinstall:
$(call cmd,install)
@@ -232,11 +230,15 @@ virtconfig:
$(call merge_into_defconfig_override,defconfig,virt)
define archhelp
- echo '* Image.gz - Compressed kernel image
(arch/$(ARCH)/boot/Image.gz)'
echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
+ echo ' Image.bz2 - Compressed kernel image
(arch/$(ARCH)/boot/Image.bz2)'
+ echo '* Image.gz - Compressed kernel image
(arch/$(ARCH)/boot/Image.gz)'
+ echo ' Image.lz4 - Compressed kernel image
(arch/$(ARCH)/boot/Image.lz4)'
+ echo ' Image.lzma - Compressed kernel image
(arch/$(ARCH)/boot/Image.lzma)'
+ echo ' Image.lzo - Compressed kernel image
(arch/$(ARCH)/boot/Image.lzo)'
+ echo ' Image.zst - Compressed kernel image
(arch/$(ARCH)/boot/Image.zst)'
echo ' image.fit - Flat Image Tree (arch/$(ARCH)/boot/image.fit)'
- echo ' install - Install kernel (compressed if
COMPRESSED_INSTALL set)'
- echo ' zinstall - Install compressed kernel'
+ echo ' install - Install kernel'
echo ' Install using (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or'
echo ' install to $$(INSTALL_PATH) and run lilo'
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image
2024-07-27 11:50 ` Emil Renner Berthing
@ 2024-07-30 1:23 ` Sedat Dilek
0 siblings, 0 replies; 6+ messages in thread
From: Sedat Dilek @ 2024-07-30 1:23 UTC (permalink / raw)
To: Emil Renner Berthing
Cc: Linus Torvalds, Catalin Marinas, Will Deacon, linux-arm-kernel,
linux-kernel
On Sat, Jul 27, 2024 at 1:50 PM Emil Renner Berthing
<emil.renner.berthing@canonical.com> wrote:
>
> Linus Torvalds wrote:
> > On Fri, 26 Jul 2024 at 13:54, Sedat Dilek <sedat.dilek@gmail.com> wrote:
> > >
> > > And when you check a diff of two of your ARM64 .config?
> > > What says COMPRESSED_INSTALL to other than the author w/o context :-)?
> >
> > Even without any context, I think it says "compressed install".
> >
> > Which seems sensible. Because THAT'S EXACTLY WHAT IT IS.
> >
> > Now, admittedly I would have preferred not having a config option for
> > this at all, but we have a sad historical situation of doing something
> > odd on arm (and parisc).
> >
> > The RISC-V people used to do the same, but they decided to just make
> > 'install' do whatever image was built, so they base it on a
> > combination of different config variables: CONFIG_XIP_KERNEL,
> > CONFIG_RISCV_M_MODE, CONFIG_SOC_CANAAN_K210, and CONFIG_EFI_ZBOOT.
>
> With the approach taken by RISC-V you can choose which compression you want
> (including uncompressed) and not just gzip. For arm64 it would look something
> like this:
>
Hi Emil,
That sounds straight-forward than discussing a single KCONFIG variable name.
Is that kconfig/kbuild tested?
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index ae527d1d409f..a99864491703 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -234,6 +234,13 @@ config ARM64
> select HAVE_RUST if CPU_LITTLE_ENDIAN
> select HAVE_STACKPROTECTOR
> select HAVE_SYSCALL_TRACEPOINTS
> + select HAVE_KERNEL_BZIP2 if !EFI_ZBOOT
> + select HAVE_KERNEL_GZIP if !EFI_ZBOOT
> + select HAVE_KERNEL_LZ4 if !EFI_ZBOOT
> + select HAVE_KERNEL_LZMA if !EFI_ZBOOT
> + select HAVE_KERNEL_LZO if !EFI_ZBOOT
> + select HAVE_KERNEL_UNCOMPRESSED if !EFI_ZBOOT
> + select HAVE_KERNEL_ZSTD if !EFI_ZBOOT
Better embed these selects in a block
if !EFI_ZBOOT
...
endif # !EFI_ZBOOT
Do you really want to use HAVE_KERNEL_UNCOMPRESSED (see below)?
x86_64 does not have XXX_KERNEL_UNCOMPRESSED.
> select HAVE_KPROBES
> select HAVE_KRETPROBES
> select HAVE_GENERIC_VDSO
> @@ -2337,17 +2344,6 @@ config EFI
> allow the kernel to be booted as an EFI application. This
> is only useful on systems that have UEFI firmware.
>
> -config COMPRESSED_INSTALL
> - bool "Install compressed image by default"
> - help
> - This makes the regular "make install" install the compressed
> - image we built, not the legacy uncompressed one.
> -
> - You can check that a compressed image works for you by doing
> - "make zinstall" first, and verifying that everything is fine
> - in your environment before making "make install" do this for
> - you.
> -
> config DMI
> bool "Enable support for SMBIOS (DMI) tables"
> depends on EFI
> diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
> index f6bc3da1ef11..b798875311aa 100644
> --- a/arch/arm64/Makefile
> +++ b/arch/arm64/Makefile
> @@ -159,18 +159,21 @@ libs-y := arch/arm64/lib/ $(libs-y)
> libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
>
> # Default target when executing plain make
> -boot := arch/arm64/boot
> +boot := arch/arm64/boot
> +boot-image-y := Image
^^ boot-image-$(CONFIG_KERNEL_UNCOMPRESSED) := Image ?
> +boot-image-$(CONFIG_KERNEL_BZIP2) := Image.bz2
> +boot-image-$(CONFIG_KERNEL_GZIP) := Image.gz
> +boot-image-$(CONFIG_KERNEL_LZ4) := Image.lz4
> +boot-image-$(CONFIG_KERNEL_LZMA) := Image.lzma
> +boot-image-$(CONFIG_KERNEL_LZO) := Image.lzo
> +boot-image-$(CONFIG_KERNEL_ZSTD) := Image.zst
> +boot-image-$(CONFIG_EFI_ZBOOT) := vmlinuz.efi
>
> -BOOT_TARGETS := Image vmlinuz.efi image.fit
> +KBUILD_IMAGE := $(boot)/$(boot-image-y)
> +BOOT_TARGETS := Image Image.bz2 Image.gz Image.lz4 Image.lzma
> Image.lzo Image.zst vmlinuz.efi image.fit
>
> PHONY += $(BOOT_TARGETS)
>
> -ifeq ($(CONFIG_EFI_ZBOOT),)
> -KBUILD_IMAGE := $(boot)/Image.gz
> -else
> -KBUILD_IMAGE := $(boot)/vmlinuz.efi
> -endif
> -
> all: $(notdir $(KBUILD_IMAGE))
>
> image.fit: dtbs
> @@ -182,13 +185,8 @@ $(BOOT_TARGETS): vmlinux
> Image.%: Image
> $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>
> -ifeq ($(CONFIG_COMPRESSED_INSTALL),y)
> - DEFAULT_KBUILD_IMAGE = $(KBUILD_IMAGE)
> -else
> - DEFAULT_KBUILD_IMAGE = $(boot)/Image
> -endif
> -
> -install: KBUILD_IMAGE := $(DEFAULT_KBUILD_IMAGE)
> +# the install target always installs KBUILD_IMAGE (which may be compressed)
> +# but keep the zinstall target for compatibility with older releases
> install zinstall:
> $(call cmd,install)
>
> @@ -232,11 +230,15 @@ virtconfig:
> $(call merge_into_defconfig_override,defconfig,virt)
>
> define archhelp
> - echo '* Image.gz - Compressed kernel image
> (arch/$(ARCH)/boot/Image.gz)'
> echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
> + echo ' Image.bz2 - Compressed kernel image
> (arch/$(ARCH)/boot/Image.bz2)'
> + echo '* Image.gz - Compressed kernel image
> (arch/$(ARCH)/boot/Image.gz)'
> + echo ' Image.lz4 - Compressed kernel image
> (arch/$(ARCH)/boot/Image.lz4)'
> + echo ' Image.lzma - Compressed kernel image
> (arch/$(ARCH)/boot/Image.lzma)'
> + echo ' Image.lzo - Compressed kernel image
> (arch/$(ARCH)/boot/Image.lzo)'
> + echo ' Image.zst - Compressed kernel image
> (arch/$(ARCH)/boot/Image.zst)'
> echo ' image.fit - Flat Image Tree (arch/$(ARCH)/boot/image.fit)'
> - echo ' install - Install kernel (compressed if
> COMPRESSED_INSTALL set)'
> - echo ' zinstall - Install compressed kernel'
> + echo ' install - Install kernel'
> echo ' Install using (your) ~/bin/installkernel or'
> echo ' (distribution) /sbin/installkernel or'
> echo ' install to $$(INSTALL_PATH) and run lilo'
Does ARM64 arch support kernel-decompression for all these compressors?
Thanks for that vital contribution and your ideas!
Best regards,
-Sedat-
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-07-30 1:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-07-26 19:49 [v2] arm64: Rename to KERNEL_IMAGE_COMPRESSED_INSTALL kconfig for compressed kernel image Sedat Dilek
2024-07-26 20:41 ` Linus Torvalds
2024-07-26 20:54 ` Sedat Dilek
2024-07-26 21:47 ` Linus Torvalds
2024-07-27 11:50 ` Emil Renner Berthing
2024-07-30 1:23 ` Sedat Dilek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®