Replace copy_modules_dir by manual_add_modules calls

dracut-install can act on kernel subdirs directly. This has no
measurable effect on the runtime.

Benchmark results
-----------------

Benchmark on my desktop machine with an AMD Ryzen 7 5700G in a tmpfs
chroot with Debian unstable on 2024-06-02. initramfs-tools 0.143 from
experimental:

```
$ schroot-wrapper -p initramfs-tools=0.143,initramfs-tools-core=0.143,linux-image-generic,firmware-linux,zstd,cryptsetup-initramfs,lvm2,kbd,mdadm,ntfs-3g,plymouth,console-setup,hyperfine -u root -c unstable
(unstable)root@desktop:~# hyperfine "update-initramfs -u"
Benchmark 1: update-initramfs -u
  Time (mean ± σ):     11.255 s ±  0.026 s    [User: 12.467 s, System: 5.728 s]
  Range (min … max):   11.194 s … 11.282 s    10 runs
```

This commit is within the margin of error:

```
$ schroot-wrapper -p ../initramfs-tools_0.143_all.deb,../initramfs-tools-core_0.143_all.deb,linux-image-generic,firmware-linux,zstd,cryptsetup-initramfs,lvm2,kbd,mdadm,ntfs-3g,plymouth,console-setup,hyperfine -u root -c unstable
(unstable)root@desktop:~# hyperfine "update-initramfs -u"
Benchmark 1: update-initramfs -u
  Time (mean ± σ):     11.248 s ±  0.031 s    [User: 12.705 s, System: 5.698 s]
  Range (min … max):   11.209 s … 11.304 s    10 runs
```

Benchmark on a Raspberry Pi Zero 2W with Debian unstable on 2024-06-02.
initramfs-tools 0.143 from experimental:

```
$ schroot-wrapper -p initramfs-tools=0.143,initramfs-tools-core=0.143,linux-image-generic,firmware-linux,zstd,cryptsetup-initramfs,lvm2,kbd,mdadm,ntfs-3g,plymouth,console-setup,hyperfine -u root -c unstable
(unstable)root@zero2w:~# hyperfine -r 10 "update-initramfs -u"
Benchmark 1: update-initramfs -u
  Time (mean ± σ):     206.167 s ±  4.261 s    [User: 53.232 s, System: 112.503 s]
  Range (min … max):   199.821 s … 210.960 s    10 runs
```

This commit is within the margin of error:

```
(unstable)root@zero2w:~# hyperfine -r 10 "update-initramfs -u"
Benchmark 1: update-initramfs -u
  Time (mean ± σ):     203.379 s ±  4.541 s    [User: 53.187 s, System: 109.325 s]
  Range (min … max):   197.522 s … 213.103 s    10 runs
```

Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com>
This commit is contained in:
Benjamin Drung 2024-06-02 02:14:20 +02:00
parent 84e5c0f7da
commit d730a3935d

View File

@ -674,15 +674,15 @@ auto_add_modules()
copy_modules_dir kernel/drivers/usb/host \
hwa-hc.ko sl811_cs.ko sl811-hcd.ko \
u132-hcd.ko whci-hcd.ko
copy_modules_dir kernel/drivers/usb/c67x00
copy_modules_dir kernel/drivers/usb/chipidea
copy_modules_dir kernel/drivers/usb/dwc2
copy_modules_dir kernel/drivers/usb/dwc3
copy_modules_dir kernel/drivers/usb/isp1760
copy_modules_dir kernel/drivers/usb/mtu3
copy_modules_dir kernel/drivers/usb/musb
copy_modules_dir kernel/drivers/usb/renesas_usbhs
copy_modules_dir kernel/drivers/usb/typec/tcpm
modules="$modules =drivers/usb/c67x00"
modules="$modules =drivers/usb/chipidea"
modules="$modules =drivers/usb/dwc2"
modules="$modules =drivers/usb/dwc3"
modules="$modules =drivers/usb/isp1760"
modules="$modules =drivers/usb/mtu3"
modules="$modules =drivers/usb/musb"
modules="$modules =drivers/usb/renesas_usbhs"
modules="$modules =drivers/usb/typec/tcpm"
# and any extcon drivers for USB
modules="$modules extcon-usb-gpio extcon-usbc-cros-ec"
# Add the axp20x_usb_power power supply driver,
@ -694,7 +694,7 @@ auto_add_modules()
# unless we're sure they don't support keyboards.
# hid-*ff covers various game controllers with
# force feedback.
copy_modules_dir kernel/drivers/input/keyboard
modules="$modules =drivers/input/keyboard"
copy_modules_dir kernel/drivers/hid \
'hid-*ff.ko' hid-a4tech.ko hid-cypress.ko \
hid-dr.ko hid-elecom.ko hid-gyration.ko \
@ -715,22 +715,22 @@ auto_add_modules()
modules="$modules hyperv-keyboard"
# Any of these might be needed by other drivers
copy_modules_dir kernel/drivers/bus
copy_modules_dir kernel/drivers/clk
copy_modules_dir kernel/drivers/gpio
copy_modules_dir kernel/drivers/i2c/busses
copy_modules_dir kernel/drivers/i2c/muxes
copy_modules_dir kernel/drivers/mfd
copy_modules_dir kernel/drivers/pci/controller
copy_modules_dir kernel/drivers/phy
copy_modules_dir kernel/drivers/pinctrl
copy_modules_dir kernel/drivers/regulator
copy_modules_dir kernel/drivers/reset
copy_modules_dir kernel/drivers/spi
copy_modules_dir kernel/drivers/usb/phy
modules="$modules =drivers/bus"
modules="$modules =drivers/clk"
modules="$modules =drivers/gpio"
modules="$modules =drivers/i2c/busses"
modules="$modules =drivers/i2c/muxes"
modules="$modules =drivers/mfd"
modules="$modules =drivers/pci/controller"
modules="$modules =drivers/phy"
modules="$modules =drivers/pinctrl"
modules="$modules =drivers/regulator"
modules="$modules =drivers/reset"
modules="$modules =drivers/spi"
modules="$modules =drivers/usb/phy"
# Needed for periodic fsck
copy_modules_dir kernel/drivers/rtc
modules="$modules =drivers/rtc"
;;
net)
copy_modules_dir kernel/drivers/net \
@ -749,22 +749,22 @@ auto_add_modules()
modules="$modules nvmem-imx-ocotp"
;;
ide)
copy_modules_dir kernel/drivers/ide
modules="$modules =drivers/ide"
;;
mmc)
copy_modules_dir kernel/drivers/mmc
modules="$modules =drivers/mmc"
;;
scsi)
copy_modules_dir kernel/drivers/scsi
copy_modules_dir kernel/drivers/ufs
modules="$modules =drivers/scsi"
modules="$modules =drivers/ufs"
modules="$modules mptfc mptsas mptscsih mptspi zfcp"
;;
ata)
copy_modules_dir kernel/drivers/ata
modules="$modules =drivers/ata"
;;
block)
copy_modules_dir kernel/drivers/block
copy_modules_dir kernel/drivers/nvme
modules="$modules =drivers/block"
modules="$modules =drivers/nvme"
modules="$modules vmd"
;;
ubi)
@ -777,7 +777,7 @@ auto_add_modules()
modules="$modules dasd_diag_mod dasd_eckd_mod dasd_fba_mod"
;;
usb_storage)
copy_modules_dir kernel/drivers/usb/storage
modules="$modules =drivers/usb/storage"
;;
fb)
# For machines that don't have a generic framebuffer device.