[systemd-devel] Issues with parallelised early boot

Naïm Favier n+systemd at monade.li
Sat Nov 26 12:59:53 UTC 2022


When using systemd as PID 1 in the initrd, there is no sequencing between loading kernel modules
(systemd-modules-load.service) and starting udev (systemd-udevd.service).
I load my graphics driver (amdgpu) with systemd-modules-load, which takes about three seconds,
so it finishes loading after udev has started and picked up the initial events, and while the
LUKS passphrase prompt is waiting for my input.

At that point, the screen briefly flashes and two undesirable behaviours occur:

1. The font initially set by the 90-vconsole udev rule is reset to its default.
2. The lines previously written to the console are scrolled up a bit while the cursor stays floating
    in the middle of the screen. After typing my passphrase, output resumes at the cursor, leaving a gap.

If I restore the ordering by adding After=systemd-modules-load.service to systemd-udevd.service, both issues go away.
Hence my questions:

Is the lack of sequencing between those two units intentional/desirable? I suppose it is, but I thought I'd ask anyway.

If so, then 1 and 2 are bugs; how should I go about troubleshooting them? Are they bugs in Linux? AMDGPU?
Could systemd somehow be involved (at least for 2)? Any pointers appreciated.

Some context: <https://github.com/NixOS/nixpkgs/issues/202846>, <https://github.com/systemd/systemd/issues/2612>

Thanks


More information about the systemd-devel mailing list