Re: udev is too slow creating devices

From: Alexander E. Patrakov
Date: Sun Sep 19 2004 - 21:30:57 EST


Greg KH wrote:
On Sun, Sep 19, 2004 at 10:00:52PM +0600, Alexander E. Patrakov wrote:

OK. The fact is that, when mounting the root filesystem, the kernel can (?) definitely say "there is no such device, and it's useless to wait for it--so I panic". Is it possible to duplicate this logic in the case with udev and modprobe? If so, it should be built into a common place (either the kernel or into modprobe), but not into all apps.


No, we need to just change the kernel to sit and spin for a while if the
root partition is not found. This is the main problem right now for
booting off of a USB device (or any other "slow" to discover device.)
It's a known kernel issue, and there are patches for 2.4 for this, but
no one has taken the time to update them for 2.6.


Then the "char-major" aliases were always broken, do I understand correctly?


Yes, for most drivers they are broken. Like sound, usb, and others.


Once we realize that, isn't it the time to mark the "Automatic kernel module loading" in the kernel configuration as BROKEN or OBSOLETE?


Fine with me, I've been wanting to do that for years. Are you willing
to handle the fallout of such a patch though? :)

Many thanks for detailed explanation. And, since char-major aliases don't work with udev anyway, and net-pf aliases are easy to enumerate and preload by parsing /lib/modules/`uname -r`/modules.alias, I think that udev users are ready to handle the fallout of this patch.

With hotplug/udev you *know* that the device node is available when your
script in dev.d is called with the appropriate environment variables.

Yes. Now we have a lot of short scriptlets under /etc/dev.d. But I don't yet see how these scriptlets interact with each other.


What do you mean? What kind of relationship do you need explained about
them?

Implementation of various logical primitives. E.g., I use GPRS and want to start pppd during the boot process (i.e., an always-on link), but after the following things:

1) /dev/ttyS0 has been created
2) /dev/ppp has been created
3) modules for line disciplines and PPP compression have been preloaded (e.g. by grepping modules.alias for tty-ldisc and ppp-compress) and are ready for use by pppd
4) firewall rules have been applied

How to "AND" these things together in a /etc/dev.d scriptlet?

--
Alexander E. Patrakov

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/