[Bug 2031185] [NEW] manual_add_modules is slow / consumes the most time

Benjamin Drung 2031185 at bugs.launchpad.net
Fri Aug 11 19:08:30 UTC 2023


Public bug reported:

I sprinkled mkinitramfs with "date -Ins" to see where most time is
spent. I ran the [1] test case in a chroot on my laptop. mkinitramfs
took 18.3 seconds. The most time consuming parts:

* 10.13 s (51.4%) auto_add_modules
* 7.20 s (36.5%) run_scripts_optional /usr/share/initramfs-tools/hooks
* 1.27 s (6.4%) final { cat; cpio; cpio|compress } > $outfile

The remaining 1.11 seconds are spread over the remaining parts.

Following hooks in /usr/share/initramfs-tools/hooks took the longest:

* 4.56s (63.3%) framebuffer
* 0.87s (12.1%) plymouth
* 0.81s (11.3%) cryptroot
* 0.23s (3.2%) lvm2
* 0.18s (2.5%) udev
* 0.17s (2.4%) mdadm

The remaining 0.38 seconds are spread over the remaining dozen of hooks.

The framebuffer hook just calls copy_modules_dir and manual_add_modules multiple times. auto_add_modules calls copy_modules_dir multiple times and manual_add_modules. copy_modules_dir calls find and then
manual_add_modules.

So most time will be spent in manual_add_modules. This function calls
modprobe on the modules, copies the modules, and add_firmware on the
firmwares from a "modinfo -F firmware" call.

Replacing manual_add_modules by a call to /usr/lib/dracut/dracut-install
speeds up the initramfs building significantly. In the chroot on my
laptop the mkinitramfs execution reduces from 18.3 seconds to 11.0 (40%
reduction).

[1] schroot-wrapper -p linux-image-generic,initramfs-tools,zstd,busybox-
initramfs,cryptsetup-initramfs,isc-dhcp-
client,kbd,lvm2,mdadm,ntfs-3g,plymouth,plymouth-theme-spinner --ppa
bdrung/ppa -c mantic -u root

** Affects: initramfs-tools (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to initramfs-tools in Ubuntu.
https://bugs.launchpad.net/bugs/2031185

Title:
  manual_add_modules is slow / consumes the most time

Status in initramfs-tools package in Ubuntu:
  New

Bug description:
  I sprinkled mkinitramfs with "date -Ins" to see where most time is
  spent. I ran the [1] test case in a chroot on my laptop. mkinitramfs
  took 18.3 seconds. The most time consuming parts:

  * 10.13 s (51.4%) auto_add_modules
  * 7.20 s (36.5%) run_scripts_optional /usr/share/initramfs-tools/hooks
  * 1.27 s (6.4%) final { cat; cpio; cpio|compress } > $outfile

  The remaining 1.11 seconds are spread over the remaining parts.

  Following hooks in /usr/share/initramfs-tools/hooks took the longest:

  * 4.56s (63.3%) framebuffer
  * 0.87s (12.1%) plymouth
  * 0.81s (11.3%) cryptroot
  * 0.23s (3.2%) lvm2
  * 0.18s (2.5%) udev
  * 0.17s (2.4%) mdadm

  The remaining 0.38 seconds are spread over the remaining dozen of
  hooks.

  The framebuffer hook just calls copy_modules_dir and manual_add_modules multiple times. auto_add_modules calls copy_modules_dir multiple times and manual_add_modules. copy_modules_dir calls find and then
  manual_add_modules.

  So most time will be spent in manual_add_modules. This function calls
  modprobe on the modules, copies the modules, and add_firmware on the
  firmwares from a "modinfo -F firmware" call.

  Replacing manual_add_modules by a call to /usr/lib/dracut/dracut-
  install speeds up the initramfs building significantly. In the chroot
  on my laptop the mkinitramfs execution reduces from 18.3 seconds to
  11.0 (40% reduction).

  [1] schroot-wrapper -p linux-image-generic,initramfs-
  tools,zstd,busybox-initramfs,cryptsetup-initramfs,isc-dhcp-
  client,kbd,lvm2,mdadm,ntfs-3g,plymouth,plymouth-theme-spinner --ppa
  bdrung/ppa -c mantic -u root

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/2031185/+subscriptions




More information about the foundations-bugs mailing list