[MIR] lz4 by default
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Release Upgrader |
New
|
Undecided
|
Unassigned | ||
initramfs-tools (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
live-build (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
livecd-rootfs (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
lz4 (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
ubuntu-release-upgrader (Ubuntu) |
Won't Fix
|
High
|
Unassigned |
Bug Description
Use `lz4 -9 -l` compression for initramfs by default as discussed on ubuntu-devel.
This would also pull the lz4 package into main
https:/
[Regression Potential]
We are trying to optimize for total boot speed, but performing a micro-optimization upon time to create/unpack kernel/initrd is an insufficient benchmark for total boot speed. This is because it ignores time to load the kernel/initrd, and whether the firmware/bootloader were able to stream decompress it whilst loading it. I.e. it is argued that in the real world, subsecond decompression gains are irrelevant if UEFI firmware, tftp boot, etc. take a lot longer than that to read extra 10s of MBs of boot material.
[TODO]
Measure pure i/o load speed with stopwatch, to figure out MB/s speed of loading initrds/kernel off FAT32, EXT4, TFTP, HTTP.
Re-evaluate if we should provide different compression mechanisms:
- ie. gzip instead of lz4 for most cases (revert)
- ie. xz for painful i/o cases (e.g. netboot)
I booted grub2 and measured loading largish amount of files, ie. $ date; initrd (hd0,gpt5)
To get a rough speed between 30 and 44 MB/s of loading these files off ext4 on nvme.
With lz4 initrd taking 67M, and gzip initrd taking 59M, the grub i/o penalty is 0.18s whilst I gain over a second in faster decompression time. Overall a win.
xz initrd is 36M meaning saving e.g. 0.8s of i/o time whilst gaining 2.4s of decompression time, meaning overall worse than gzip.
Related branches
- Brian Murray: Disapprove
-
Diff: 17 lines (+2/-2)1 file modifiedDistUpgrade/DistUpgradeCache.py (+2/-2)
- Canonical Mainstream: Pending requested
- Dimitri John Ledkov: Pending requested
-
Diff: 1270 lines (+462/-182)35 files modifieddebian/changelog (+7/-0)
debian/patches/series (+1/-0)
debian/patches/ubuntu-make-genisoimage-more-flexible.patch (+31/-0)
functions/defaults.sh (+23/-14)
functions/losetup.sh (+1/-1)
functions/packagelists.sh (+9/-1)
functions/releases.sh (+3/-0)
scripts/build/lb_binary_debian-installer (+9/-2)
scripts/build/lb_binary_disk (+5/-15)
scripts/build/lb_binary_hooks (+6/-5)
scripts/build/lb_binary_includes (+5/-1)
scripts/build/lb_binary_linux-image (+2/-2)
scripts/build/lb_binary_package-lists (+35/-13)
scripts/build/lb_binary_rootfs (+12/-5)
scripts/build/lb_binary_syslinux (+23/-0)
scripts/build/lb_bootstrap_debootstrap (+12/-1)
scripts/build/lb_chroot (+7/-0)
scripts/build/lb_chroot_archives (+9/-11)
scripts/build/lb_chroot_devpts (+1/-1)
scripts/build/lb_chroot_dpkg (+5/-9)
scripts/build/lb_chroot_early_hooks (+70/-0)
scripts/build/lb_chroot_hacks (+13/-29)
scripts/build/lb_chroot_hooks (+8/-6)
scripts/build/lb_chroot_hostname (+7/-11)
scripts/build/lb_chroot_includes (+5/-1)
scripts/build/lb_chroot_linux-image (+18/-0)
scripts/build/lb_chroot_live-packages (+0/-14)
scripts/build/lb_chroot_package-lists (+33/-17)
scripts/build/lb_chroot_resolv (+16/-1)
scripts/build/lb_chroot_sysv-rc (+7/-7)
scripts/build/lb_chroot_upstart (+8/-14)
scripts/build/lb_clean (+1/-0)
scripts/build/lb_config (+31/-1)
share/hooks/004-remove-dbus-machine-id.chroot (+3/-0)
share/hooks/100-build-wubildr.binary (+36/-0)
summary: |
- lz4 by default + [MIR] lz4 by default |
description: | updated |
Changed in lz4 (Ubuntu): | |
status: | New → Confirmed |
Changed in initramfs-tools (Ubuntu): | |
status: | New → Fix Committed |
Changed in live-build (Ubuntu): | |
status: | New → Fix Committed |
Changed in livecd-rootfs (Ubuntu): | |
status: | New → Fix Committed |
Changed in ubuntu-release-upgrader (Ubuntu): | |
assignee: | nobody → Dimitri John Ledkov (xnox) |
status: | New → Triaged |
importance: | Undecided → High |
Changed in partman-auto (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → High |
assignee: | nobody → Dimitri John Ledkov (xnox) |
Changed in lz4 (Ubuntu): | |
status: | Confirmed → Fix Released |
Changed in linux (Ubuntu): | |
status: | Incomplete → Confirmed |
description: | updated |
description: | updated |
tags: | added: id-5d0162d5caee4b55443d4eda |
no longer affects: | partman-auto (Ubuntu) |
Changed in initramfs-tools (Ubuntu): | |
importance: | Undecided → High |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
Changed in live-build (Ubuntu): | |
importance: | Undecided → High |
Changed in livecd-rootfs (Ubuntu): | |
importance: | Undecided → High |
Changed in lz4 (Ubuntu): | |
importance: | Undecided → High |
no longer affects: | ubuntu-release-upgrader (Ubuntu) |
no longer affects: | linux (Ubuntu) |
Changed in ubuntu-release-upgrader (Ubuntu): | |
status: | New → Won't Fix |
importance: | Undecided → High |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1831736
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.