Bug#1051514: grub-common: Please remove grub-common.service from boot hot path
Paul Menzel
pmenzel at molgen.mpg.de
Sun Sep 10 14:45:52 BST 2023
Dear Andres,
Thank you for your reply.
Am 10.09.23 um 13:54 schrieb Julian Andres Klode:
> On Sat, Sep 09, 2023 at 12:21:29AM +0200, Paul Menzel wrote:
>> Package: grub-common
>> Version: 2.12~rc1-9
>> Severity: normal
>> The unit `grub-common.service` is installed to the multi-user.target and
>> therefore run during boot-up, slowing down the boot, especially as shell
>> commands are used.
>>
>> ```
>> $ systemctl cat grub-common.service
>> # /lib/systemd/system/grub-common.service
>> [Unit]
>> Description=Record successful boot for GRUB
>> After=suspend.target hibernate.target hybrid-sleep.target
>> suspend-then-hibernate.target
>> ConditionPathExists=/boot/grub/grub.cfg
>>
>> [Service]
>> Type=oneshot
>> Restart=no
>> ExecStartPre=/bin/sh -c '[ -s /boot/grub/grubenv ] || rm -f
>> /boot/grub/grubenv; mkdir -p /boot/grub'
>> ExecStart=grub-editenv /boot/grub/grubenv unset recordfail
>> ExecStartPost=/bin/sh -c 'if grub-editenv /boot/grub/grubenv list | grep -q
>> initrdless_boot_fallback_triggered=1; then echo "grub: GRUB_FORCE_PARTUUID
>> set, initrdless boot paniced, fallback triggered."; fi'
>> StandardOutput=kmsg
>>
>> [Install]
>> WantedBy=multi-user.target suspend.target hibernate.target
>> hybrid-sleep.target suspend-then-hibernate.target
>> ```
>
> As you can see, there are no Before relations in the service,
> so grub-common is not in the hot path, nothing depends on it
> having finished startup.
>
> I'm sure this was well intended and not a troll attempt, but
> systemd doesn't start services in a sequence, so services can
> run in parallel and there is in general very little ordering
> requirements.
That is exactly, what I was saying. Due to the missing ordering, systemd
starts this service as early as possible causing pressure on the
possibly scarce system resources at the beginning. So care has to be
taken introducing these things. Looking into decreasing the start time
of an Ubuntu system once, grub-common showed up there, so it will make
the startup time of quite a lot of Debian systems longer now too. Please
keep in mind, that Debian is also run on older systems.
> I suggest you have a look at your `systemd-analyze critical-chain`
> to see your actual critical chain.
Thank you. I am well aware of these tools – including systemd-bootchart.
Kind regards,
Paul
More information about the Pkg-grub-devel
mailing list