Bruce Dubbs wrote: > This is a continuation of the thread Boot and shutdown timing. > > Bryan Kadzban wrote: > > > If you use /dev/sd??, then I wish you the best of luck the next time > > the kernel's disk discovery order changes. Because it's not > > guaranteed to remain the same forever, and so when it changes, your > > system won't be bootable. > > Your comment made me curious. I wanted to look at how the kernel > decided to add devices. What I found out is that the built in kernel > drivers are run one at a time in link order. > > init/main.c: function do_initcall_level(int level) > > for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) > do_one_initcall(*fn);
Only applies to drivers linked into the kernel. Module load takes an arbitrary amount of time. That's one difference between your setup and mine... :-) > Now, within a driver, I do not think the initialization of multiple > devices would be asynchronous, but would be stepped through one at a > time. I haven't tried to read through the driver code though. Depends on the driver. For PCI(e), I could see finding all devices on the bus, then probing each one in parallel to load drivers and get any sub-buses running faster. Not sure if the driver does that though. > I'll also note that the kernel cannot use uuids or labels to mount the > root fs without an initrd. Hmm. That's a good point, although I thought the kernel could interpret UUID=foo itself when the FS driver was linked in. Maybe that was before the initramfs setup started getting pushed so hard, and maybe it got ripped out.
signature.asc
Description: OpenPGP digital signature
-- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page