mkinitramfs is too slow

Bug #1958148 reported by Heinrich Schuchardt
20
This bug affects 3 people
Affects Status Importance Assigned to Milestone
initramfs-tools (Ubuntu)
Fix Released
High
Unassigned

Bug Description

On the Nezha board creating an initrd takes more than 1 hour. The compression level -19 for zstd is unwisely chosen.

Here are durations and compression results for an SiFive Unmatched board with four cores using zstd:

-T0 -1 => 13.92s, 136298155 bytes
-T0 -2 => 15.73s, 131717830 bytes
-T0 -3 => 26.11s, 127434653 bytes
-T0 -4 => 29.31s, 126924540 bytes
-T0 -5 => 36.44s, 125296557 bytes
-T0 -6 => 39.36s, 124781669 bytes
-T0 -7 => 46.56s, 116200665 bytes
-T0 -8 => 51.95s, 113172941 bytes
-T0 -9 => 55.89s, 112835937 bytes
-T0 -10 => 61.32s, 108326876 bytes
-T0 -11 => 64.32s, 108115060 bytes
-T0 -12 => 76.37s, 108016478 bytes
-T0 -13 => 148.99s, 109121308 bytes
-T0 -14 => 156.58s, 108908574 bytes
-T0 -15 => 228.64s, 109213554 bytes
-T0 -16 => 380.26s, 107260643 bytes
-T0 -17 => 453.36s, 103679714 bytes
-T0 -18 => 714.79s, 100402249 bytes
-T0 -19 => 1046.58s, 100188713 bytes

Compression level between -2 to -10 offer a good compromise between CPU time and compression results.

Ideally there would be a parameter that we could pass to mkinitfs. But for as fast solution we should simply replace -19 by -9 in mkinitramfs.

Discussion on ubuntu-devel mailing list: https://lists.ubuntu.com/archives/ubuntu-devel/2021-December/041726.html

Tags: fr-1977
Revision history for this message
Heinrich Schuchardt (xypron) wrote :

initramfs-tools - 0.140ubuntu11 is available in ppa:xypron/gnu-efi and needs a sponsor.

Changed in initramfs-tools (Ubuntu):
status: New → In Progress
tags: added: fr-1977
Mathew Hodson (mhodson)
Changed in initramfs-tools (Ubuntu):
importance: Undecided → Medium
Revision history for this message
Julian Andres Klode (juliank) wrote :

Unsubscribed ubuntu-sponsors as the default compression level is still an ongoing discussion.

Revision history for this message
Trent Lloyd (lathiat) wrote (last edit ):

Where is the discussion happening?

I ran the same benchmarks for my i7-6770HQ 4-core system. This really needs revising.

While disk space using in /boot is a concern, in this example at least -10 would use only 8MB (10%) more space and cut the time taken from 2m1s to 13s.

zstd.0 84M 0m2.150s
zstd.1 96M 0m1.236s
zstd.2 90M 0m1.350s
zstd.3 84M 0m2.235s
zstd.4 84M 0m3.355s
zstd.5 81M 0m5.679s
zstd.6 81M 0m7.416s
zstd.7 78M 0m8.857s
zstd.8 77M 0m10.134s
zstd.9 77M 0m11.238s
zstd.10 72M 0m13.232s
zstd.11 72M 0m14.897s
zstd.12 72M 0m19.343s
zstd.13 72M 0m26.327s
zstd.14 72M 0m30.948s
zstd.15 72M 0m40.913s
zstd.16 70M 0m59.517s
zstd.17 66M 1m15.854s
zstd.18 64M 1m36.227s
zstd.19 64M 2m1.417s

Revision history for this message
Heinrich Schuchardt (xypron) wrote :
Changed in initramfs-tools (Ubuntu):
status: In Progress → Confirmed
Revision history for this message
Sebastien Bacher (seb128) wrote :

@re discussion, there has been some posts about the topic at least on https://lists.ubuntu.com/archives/ubuntu-devel/2021-December/041726.html

it feels like we would need a feature freeze exception at this point for a such change, or at least an ack from ubuntu release

Changed in initramfs-tools (Ubuntu):
importance: Medium → High
Revision history for this message
Julian Andres Klode (juliank) wrote :

I have uploaded the agreed changes (attached) to jammy.

Changed in initramfs-tools (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Brian Murray (brian-murray) wrote :

As an Ubuntu Release team member I approve of this change.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.140ubuntu13

---------------
initramfs-tools (0.140ubuntu13) jammy; urgency=medium

  * Lower the compression levels for zstd and lz4 (LP: #1958148)
    Following the discussion on the mailing list, we have reached
    a conclusion to lower the default compression levels:
    - For lz4, the compression level is lowered to 2 from 9
    - For zstd, the compression level is lowered to 1 from 19

 -- Julian Andres Klode <email address hidden> Tue, 15 Mar 2022 16:00:55 +0100

Changed in initramfs-tools (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
iMac (imac-netstatz) wrote :

Worth noting this had the unintended consequence of temporarily breaking some modern certified systems, like my XPS 13 9380 when jumping from 22.04 to 22.10, in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1842320

Benjamin Drung (bdrung)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.