From d730a3935d6446f803e26c19aa041ad21a81de17 Mon Sep 17 00:00:00 2001 From: Benjamin Drung Date: Sun, 2 Jun 2024 02:14:20 +0200 Subject: [PATCH] Replace copy_modules_dir by manual_add_modules calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- hook-functions | 64 +++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/hook-functions b/hook-functions index 7fccf0e..1a3751e 100644 --- a/hook-functions +++ b/hook-functions @@ -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.