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.

Attachment: 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

Reply via email to