-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
performance regression in dracut-install 060 #316
Comments
|
1./ > first bad commit - dracutdevs/dracut@3de4c73 CC @athierry1 2./ From @Conan-Kudo
|
|
From the Ubuntu bug:
|
|
I think dracut-install parses every fw_devlink supplier to get a dependency graph (resulting in a lot of FWIW, I get this on a RK3399 system: Some syscalls it does
Looks similar if not the same. Except we have |
|
I just annotated On that setup initramfs-tools had 28 dracut-install calls. |
|
I could combine some of those calls reducing the number from 28 to 18: The remaining ones will be more complicated, because some of them use different parameters and initramfs-tools hooks can call it too. |
|
I wonder if we can combine them at the (Also, I'd say let's keep this bug focused on what we can do in |
|
Proposed initramfs-tools change to reduce the number of dracut-install calls: https://salsa.debian.org/kernel-team/initramfs-tools/-/merge_requests/114 |
|
#408 is a further perf improvement here, which I think gets us close to the original performance before the regression (at least on ARM64 systems like MacBooks). |
|
Related (confirming the issue): https://www.reddit.com/r/AsahiLinux/comments/1dwn322/initramfs_not_found/ |
That has become more about fixing missing cases in the implementation than improving performance. It does new work which makes things slower, but it's vital for some devices and I'd say correctness is worth the performance hit there. To make things clearer, I've split the performance fix there to #479. |
|
OTOH, I have a better idea. Parsing sysfs on a device is slow and gives machine-dependent results. These supplier relations originate from the device-tree as far as I can tell, so we might be able to parse DTB files to get a reproducible, full list of these dependencies. We would be able to do it once per installed kernel for all its DTB files and cache the result across runs. Even better, there's a new "weakdep" thing on the kernel side. If we can convince kernel people to parse device-tree files to generate these weak dependencies at compile-time, we can just copy the existing logic we have for usual dependencies. |
Describe the bug
When compared to Ubuntu 23.10 (dracut 059), creating intramfs files with update-initramfs in Ubuntu 24.04 (dracut 060) takes 2 to 5 times more time on ARM devices.
Distribution used
Ubuntu
Dracut version
060
To Reproduce
Run dracut-install on an ARM device.
Additional context
The text was updated successfully, but these errors were encountered: