[systemd-devel] device units rely on udev rules?

Scott James Remnant scott at netsplit.com
Mon May 9 11:53:48 PDT 2011


Another question I wasn't able to find an answer to in the documentation
I've read so far.

The use of device units seems to very much rely on udevd running on the
system, and not only that, udev rules having been parsed for the device and
a systemd tag "set" in the udevdb. udev obviously starts after systemd, and
systemd starts after the kernel.

This means there are a large number of devices already known to the kernel
at the point that systemd starts, especially if you build the drivers into
the kernel for those devices. It's possible to get going straight away with
those devices. But relying on udevd tagging them means you end up waiting
around for udevd to start, and worse! since udevd doesn't apply rules to
existing devices on startup, you have to wait around for "udevadm trigger"
to be run.

Given that devtmpfs means the device nodes are already available, and
systemd will be merging the ACL handling from CK/udev into itself, why does
systemd rely on udev coldplugging in this way? All that's left for udevd to
do at this point is "device groups" (which should go really away on any
modern distro) and symlinks.

There are probably many systems out there (hi!) that care so little about
symlinks that they're happy for udevd to be started non-critically in the
boot, and consider the "udevadm trigger" run a necessity that's probably the
last thing to run.

What are the long term plans here? Do you envision this staying the way it
is?

Scott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20110509/861b7b1b/attachment.htm>


More information about the systemd-devel mailing list