On Fri, Aug 17, 2018 at 12:22:44PM -0700, Andi Kleen wrote: > On Fri, Aug 17, 2018 at 07:57:46PM +0200, Adam Borowski wrote: > > > The "favourite compressor" seems to roughly change every year, so if > > > we keep adding new ones things will get more and more convoluted. > > > > The above patchset drops just bzip2. It is the only one that's strictly > > beaten in every way (ratio, time, memory usage), there are also no other > > Does time include build time? I've been reverting back to gzip recently > because I care very much about that.
Too lazy to benchmark a kernel image (IIRC Nick Terrell posted that a while ago), here's copypasta of a random 16824672 byte executable, in userspace, with default level setting: comp decomp size xz 8.038s 0.356s 4320292 bz2 2.265s 0.730s 5234516 zst 0.274s 0.102s 5657626 gz 0.880s 0.152s 6515505 Z 0.499s 0.133s 8932459 lzo 0.100s 0.095s 9198874 As you can see, zstd's compression time is drastically better than gzip, while ratio is better. The default level is very low (-3 on -1..-22 scale) but you can crank it up for stronger compression. The defaults fit your use case. > > uses of bzip2 anywhere in the kernel so we'd get to drop its code > > completely: 900 lines of Linus' happiness. > > Great! > > > Other candidates are lzo and bare lzma (you want lz4, zstd or xz instead), > > but those are used elsewhere thus there's hardly any gain. If you want them > > gone, please say so -- I'll include their droppage. > > Yes would be good to remove the kernel image support for those too > just to simplify the config process, even if it doesn't save much code. There's one caveat: fast choices are quite new: * lz4 userspace tools are not even in current Debian stable (just unstable) * uncompressed kernel got in only this merge window * zstd has userspace tools in Debian stable but is not merged into the kernel yet (other dists are probably similar) Thus, it might be a good idea to keep lzo for a while longer. Bare lzma can probably go -- xz filters are nice for binaries of archs it knows (disabled otherwise), and lack of header requires hacks to find out the payload's size. So it's up to you guys: do you want me to drop lzo and/or lzma? We can also drop them just for vmlinuz but not initrd. Meow! -- ⢀⣴⠾⠻⢶⣦⠀ What Would Jesus Do, MUD/MMORPG edition: ⣾⠁⢰⠒⠀⣿⡁ • multiplay with an admin char to benefit your mortal [Mt3:16-17] ⢿⡄⠘⠷⠚⠋⠀ • abuse item cloning bugs [Mt14:17-20, Mt15:34-37] ⠈⠳⣄⠀⠀⠀⠀ • use glitches to walk on water [Mt14:25-26]