git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Supporting LZ4 as initramfs compressor


On Mon, Mar 19, 2018 at 02:59:24PM +0000, Balint Reczey wrote:
> Hi,
> 
> Initramfs-tools uses gzip compression by default which served us well
> for quite some time but LZ4 offers way faster decompression while
> making a only slightly bigger initramfs files.
> 
> On my old laptop the initramfs extraction time decreased from ~1.2s to ~0.24s:
> (with lz4)
> kernel: [    0.297726] Unpacking initramfs...
> kernel: [    0.535061] Freeing initrd memory: 77940K
> kernel: [    0.301637] Unpacking initramfs...
> kernel: [    0.539109] Freeing initrd memory: 77940K
> (with gzip)
> kernel: [    0.273748] Unpacking initramfs...
> kernel: [    1.490066] Freeing initrd memory: 57140K
> kernel: [    0.281729] Unpacking initramfs...
> kernel: [    1.498493] Freeing initrd memory: 57140K
> 
> The increase in the initrd.img size is ~14%:
> (lz4)
> -rw-r--r-- 1 root root 66709065 márc  19 14:24
> /boot/initrd.img-4.15.0-12-generic
> (gzip)
> -rw-r--r-- 1 root root 58510993 márc  19 12:57
> /boot/initrd.img-4.15.0-12-generic.bak
> 
> Initramfs creation speed also improved a bit from ~24s to ~21s wall clock time:
> (lz4)
> update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> 14.97user 6.31system 0:20.47elapsed 103%CPU (0avgtext+0avgdata
> 22368maxresident)k
> update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> 15.18user 6.49system 0:20.48elapsed 105%CPU (0avgtext+0avgdata
> 22308maxresident)k
> (gzip)
> update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> 18.23user 6.77system 0:23.61elapsed 105%CPU (0avgtext+0avgdata
> 22396maxresident)k
> update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> 18.38user 6.83system 0:23.82elapsed 105%CPU (0avgtext+0avgdata
> 22292maxresident)k

For me it was 16 -> 10 I think.

> 
> Base on the results I plan adding LZ4 compression support to
> initramfs-tools as requested in LP: #1488620 [1] in the next days
> without setting it as default
>

+1

> and I propose setting LZ4 as default for 18.10.

We might have zstd support by that time (I hope), it might make sense
to use that then (better space/time tradeoff), but we'll have to see.

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en