Re: [PATCH v10 4/8] usr: add support for zstd compressed initramfs

From: Adam Borowski
Date: Tue Aug 04 2020 - 05:20:07 EST


On Tue, Aug 04, 2020 at 09:25:23AM +0200, Sedat Dilek wrote:
> On Tue, Aug 4, 2020 at 8:52 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > On Thu, Jul 30, 2020 at 9:13 PM Nick Terrell <nickrterrell@xxxxxxxxx> wrote:
> > > From: Nick Terrell <terrelln@xxxxxx>
> > > * Add support for a zstd compressed initramfs.
> > > * Add compression for compressing built-in initramfs with zstd.

> > > --- a/usr/Kconfig
> > > +++ b/usr/Kconfig
> > > @@ -100,6 +100,15 @@ config RD_LZ4
> > > Support loading of a LZ4 encoded initial ramdisk or cpio buffer
> > > If unsure, say N.
> > >
> > > +config RD_ZSTD
> > > + bool "Support initial ramdisk/ramfs compressed using ZSTD"
> > > + default y
> > > + depends on BLK_DEV_INITRD
> > > + select DECOMPRESS_ZSTD
> > > + help
> > > + Support loading of a ZSTD encoded initial ramdisk or cpio buffer.
> > > + If unsure, say N.
> >
> > I'm aware you copied this from the other entries, but IMHO "default y",
> > and "If unsure, say N" are not a good combination.

> you are right - for new stuff it should be "default n".

It got already applied to Linus' tree with "y", and I think it'd be nice
to have it as a default. Let's disable other compressors instead.

On the other hand, having an unsupported rd compressor results in a boot
failure that's not immediately obvious, so that's a reason for keeping
the setting as "y".

On the third hand, distributions default to either gz or xz, thus I'd say:
* let's have gz xz zstd default to y, all others to n
* drop bzip2 lzma1 completely
* distros can't switch the mkinitramfs default yet, but if RD_ZSTD=y now,
they'll be able to once they drop support for old kernels in a few years

> What I am missing - still - is a note - that your user-space should
> have the correct bits to support zstd-initramfs.
> Unsure where to place such an information.

Looks like INITRAMFS_COMPRESSION_* have lengthy prose but are not shown in
menuconfig, while RD_*, with no such prose, are shown.

The prose itself is grossly obsolete, too. I have some updates in:
https://github.com/kilobyte/linux/commits/nobz2-v3
but that patchset needs rebasing and refreshing.


Meow!
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁
⢿⡄⠘⠷⠚⠋⠀ It's time to migrate your Imaginary Protocol from version 4i to 6i.
⠈⠳⣄⠀⠀⠀⠀