[Bug 2065180] Re: performance regression in dracut-install 060
Viraniac
2065180 at bugs.launchpad.net
Tue Jul 2 11:41:17 UTC 2024
Hi Benjamin,
I am also not seeing much difference on VIM4. The dracut-install version
060+5-1ubuntu3.2~ppa1 is providing only 200-300 ms improvement over
060+5-1ubuntu3.1 version.
On Tue, Jul 2, 2024 at 12:10 AM Benjamin Drung <2065180 at bugs.launchpad.net>
wrote:
> There is another performance improvement upstream:
> https://github.com/dracut-ng/dracut-ng/pull/408
>
> I tested this change a Raspberry Pi Zero 2W, but it had no measurable
> performance improvement:
>
> ```
> $ sudo hyperfine --warmup 1 -r 10 "update-initramfs -u"
> Benchmark 1: update-initramfs -u
> Time (mean ± σ): 249.595 s ± 7.243 s [User: 66.584 s, System:
> 170.342 s]
> Range (min … max): 240.879 s … 260.506 s 10 runs
> ```
>
> Dave, can you test dracut 060+5-1ubuntu3.2~ppa1 from
> https://launchpad.net/~bdrung/+archive/ubuntu/ppa to see if that would
> improve the situation on the other Pis? Viraniac, could you test that
> version on your VIM4?
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/2065180
>
> Title:
> performance regression in dracut-install 060
>
> Status in Dracut:
> New
> Status in cryptsetup package in Ubuntu:
> Fix Released
> Status in dracut package in Ubuntu:
> Fix Released
> Status in initramfs-tools package in Ubuntu:
> Fix Released
> Status in lvm2 package in Ubuntu:
> Fix Released
> Status in miniramfs package in Ubuntu:
> Fix Released
> Status in thin-provisioning-tools package in Ubuntu:
> Fix Released
> Status in cryptsetup source package in Noble:
> New
> Status in dracut source package in Noble:
> Fix Released
> Status in initramfs-tools source package in Noble:
> Incomplete
> Status in lvm2 source package in Noble:
> New
> Status in miniramfs source package in Noble:
> New
> Status in thin-provisioning-tools source package in Noble:
> New
>
> Bug description:
> [ Impact ]
>
> When compared to Ubuntu 23.10, creating intramfs files with update-
> initramfs takes 2 to 5 times more time on ARM devices.
>
> IIUC, dracut-install usage was added to initramfs-tools to speed up
> the process. But now its way slower. Even running update-initramfs on
> jammy, which doesn't use dracut-install, is way faster then the time
> taken on Noble.
>
> first bad commit -
>
> https://github.com/dracutdevs/dracut/commit/3de4c7313260fb600507c9b87f780390b874c870
>
> Updating the initrd on a Raspberry Pi Zero 2W on Ubuntu 24.04 (noble)
> with initramfs-tools 0.142ubuntu25.1 takes over six minutes:
>
> ```
> bdrung at zero2w:~$ sudo hyperfine --warmup 1 -r 10 "update-initramfs -u"
> Benchmark 1: update-initramfs -u
> Time (mean ± σ): 402.751 s ± 5.592 s [User: 166.316 s, System:
> 228.909 s]
> Range (min … max): 394.380 s … 411.445 s 10 runs
> ```
>
> [ Test Plan ]
>
> 1. Measure `update-initramfs -u` before the update.
> 2. Log the content of the initrd before the update: `lsinitramfs
> /boot/initrd.img`
> 3. update dracut-install / initramfs-tools-core
> 4. Measure `update-initramfs -u`. It should be faster (the performance
> improvements on amd64 should be very small and might be within the
> measurement uncertainty).
> 5. Check with lsinitramfs that the content of the newly generated initrd
> hasn't changed.
>
> [ Where problems could occur ]
>
> The code that is responsible for including the kernel modules into the
> initrd is touched. Negative consequences could be that some needed
> kernel modules will not be included any more (should be covered by the
> test case) or that building new initrds will fail.
>
> The initramfs-tools fix changes how manual_add_modules behaves.
> `manual_add_modules` does not copy kernel modules, but queues them for
> being copied when the newly added function `apply_add_modules` is
> called.
>
> I checked all instances of calls to `manual_add_modules` for possible
> regressions (see comment #15). Only miniramfs needs to be adjusted to
> also call `apply_add_modules`. But this change could break consumers
> of the `manual_add_modules` function that are outside of the Ubuntu
> archive. I googled for `apply_add_modules` but found no public outside
> users.
>
> [ Benchmarks ]
>
> Stock noble on a Raspberry Pi Zero 2W:
>
> ```
> bdrung at zero2w:~$ sudo hyperfine -r 5 "update-initramfs -u"
> Benchmark 1: update-initramfs -u
> Time (mean ± σ): 415.664 s ± 6.015 s [User: 166.728 s, System: 232.523
> s]
> Range (min … max): 409.139 s … 422.632 s 5 runs
> ```
>
> noble with dracut-install 060+5-1ubuntu3.1 (with linux 6.8.0-1006.6 on
> 2024-07-01):
>
> ```
> bdrung at zero2w:~$ sudo hyperfine --warmup 1 -r 10 "update-initramfs -u"
> Benchmark 1: update-initramfs -u
> Time (mean ± σ): 248.054 s ± 5.569 s [User: 67.410 s, System:
> 169.412 s]
> Range (min … max): 238.909 s … 257.384 s 10 runs
> ```
>
> [ Other Info ]
>
> $ lsb_release -rd
> No LSB modules are available.
> Description: Ubuntu 24.04 LTS
> Release: 24.04
>
> $ apt-cache policy dracut-install
> dracut-install:
> Installed: 060+5-1ubuntu3
> Candidate: 060+5-1ubuntu3
> Version table:
> *** 060+5-1ubuntu3 500
> 500 http://ports.ubuntu.com/ubuntu-ports noble/main arm64
> Packages
> 100 /var/lib/dpkg/status
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/dracut/+bug/2065180/+subscriptions
>
>
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to dracut in Ubuntu.
Matching subscriptions: dracut
https://bugs.launchpad.net/bugs/2065180
Title:
performance regression in dracut-install 060
Status in Dracut:
New
Status in cloud-initramfs-tools package in Ubuntu:
Fix Committed
Status in cryptsetup package in Ubuntu:
Fix Released
Status in dracut package in Ubuntu:
Fix Released
Status in initramfs-tools package in Ubuntu:
Fix Released
Status in lvm2 package in Ubuntu:
Fix Released
Status in miniramfs package in Ubuntu:
Fix Released
Status in open-iscsi package in Ubuntu:
Invalid
Status in thin-provisioning-tools package in Ubuntu:
Fix Released
Status in cloud-initramfs-tools source package in Noble:
New
Status in cryptsetup source package in Noble:
New
Status in dracut source package in Noble:
Fix Released
Status in initramfs-tools source package in Noble:
Incomplete
Status in lvm2 source package in Noble:
New
Status in miniramfs source package in Noble:
New
Status in open-iscsi source package in Noble:
New
Status in thin-provisioning-tools source package in Noble:
New
Bug description:
[ Impact ]
When compared to Ubuntu 23.10, creating intramfs files with update-
initramfs takes 2 to 5 times more time on ARM devices.
IIUC, dracut-install usage was added to initramfs-tools to speed up
the process. But now its way slower. Even running update-initramfs on
jammy, which doesn't use dracut-install, is way faster then the time
taken on Noble.
first bad commit -
https://github.com/dracutdevs/dracut/commit/3de4c7313260fb600507c9b87f780390b874c870
Updating the initrd on a Raspberry Pi Zero 2W on Ubuntu 24.04 (noble)
with initramfs-tools 0.142ubuntu25.1 takes over six minutes:
```
bdrung at zero2w:~$ sudo hyperfine --warmup 1 -r 10 "update-initramfs -u"
Benchmark 1: update-initramfs -u
Time (mean ± σ): 402.751 s ± 5.592 s [User: 166.316 s, System: 228.909 s]
Range (min … max): 394.380 s … 411.445 s 10 runs
```
[ Test Plan ]
1. Measure `update-initramfs -u` before the update.
2. Log the content of the initrd before the update: `lsinitramfs /boot/initrd.img`
3. update dracut-install / initramfs-tools-core
4. Measure `update-initramfs -u`. It should be faster (the performance improvements on amd64 should be very small and might be within the measurement uncertainty).
5. Check with lsinitramfs that the content of the newly generated initrd hasn't changed.
[ Where problems could occur ]
The code that is responsible for including the kernel modules into the
initrd is touched. Negative consequences could be that some needed
kernel modules will not be included any more (should be covered by the
test case) or that building new initrds will fail.
The initramfs-tools fix changes how manual_add_modules behaves.
`manual_add_modules` does not copy kernel modules, but queues them for
being copied when the newly added function `apply_add_modules` is
called.
I checked all instances of calls to `manual_add_modules` for possible
regressions (see comment #15). Only miniramfs needs to be adjusted to
also call `apply_add_modules`. But this change could break consumers
of the `manual_add_modules` function that are outside of the Ubuntu
archive. I googled for `apply_add_modules` but found no public outside
users.
[ Benchmarks ]
Stock noble on a Raspberry Pi Zero 2W:
```
bdrung at zero2w:~$ sudo hyperfine -r 5 "update-initramfs -u"
Benchmark 1: update-initramfs -u
Time (mean ± σ): 415.664 s ± 6.015 s [User: 166.728 s, System: 232.523 s]
Range (min … max): 409.139 s … 422.632 s 5 runs
```
noble with dracut-install 060+5-1ubuntu3.1 (with linux 6.8.0-1006.6 on
2024-07-01):
```
bdrung at zero2w:~$ sudo hyperfine --warmup 1 -r 10 "update-initramfs -u"
Benchmark 1: update-initramfs -u
Time (mean ± σ): 248.054 s ± 5.569 s [User: 67.410 s, System: 169.412 s]
Range (min … max): 238.909 s … 257.384 s 10 runs
```
[ Other Info ]
$ lsb_release -rd
No LSB modules are available.
Description: Ubuntu 24.04 LTS
Release: 24.04
$ apt-cache policy dracut-install
dracut-install:
Installed: 060+5-1ubuntu3
Candidate: 060+5-1ubuntu3
Version table:
*** 060+5-1ubuntu3 500
500 http://ports.ubuntu.com/ubuntu-ports noble/main arm64 Packages
100 /var/lib/dpkg/status
To manage notifications about this bug go to:
https://bugs.launchpad.net/dracut/+bug/2065180/+subscriptions
More information about the foundations-bugs
mailing list