Re: 2.6.12 initrd module loading seems parallel on bootup

From: Christian Trefzer
Date: Wed Jun 29 2005 - 18:41:56 EST


Hi Darry,
first of all thanks for your questions, and sorry for answering late, I've been away for some time.

Darryl L. Miles schrieb:

Are we sure we are not talking about two different problems here.

I'm using RedHat and mkinitrd, in the initrd image there is already a skeleton /dev tree that contains my real-root device. udev also exists in the initrd image. I don't think any /dev device magic was necessary for me too mount root.

It is not clear Chris which tools you are using on initrd, standard Gentoo methods or a home brew setup ? What shell is calling modprobe ? Can you confirm at what point you are seeing modprobe exit ?

I am using a self-made initramfs setup using the "standard" binaries from the live system, usable for instance as rescue system with tools identical to anything I have installed, including bash as shell for the init script, udev, module-init-tools, lvm2, mdadm, and so on and so forth. There are only the most basic device nodes in the supplied /dev tree, like null, console, etc.
Unfortunately, I don't really "see" modprobe exit, it just takes less time until the "modprobe $mod && e_done" prints its "done." yet related device nodes are still missing. Waiting for any required nodes fixes the problem so far, but maybe bash-3.00 is having a similar issue as nash. I'll try using sash or busybox ASAP to check if the problem is somewhere else.

The funny thing is that with kernels up to 2.6.11.12, I don't see this problem. The patch mentioned further up this thread was against 2.6.11-rc1 and should have been applied long before I even touched 2.6.11, so I just don't understand why I have problems now.

* Immediatly (before device driver has detected hardware and reported / registered its findings). This is the symptom I was seeing, but the cause was incorrect shell handling. * After detection but before device node creation.

Well, so far I cannot distinguish both of these cases, but it definitely is _not_ the third one:

* After device node creation.


Otherwise I would not run into problems like mdadm failing trying to assemble arrays while disk nodes are still missing in action.

FYI - This looks like the snippet from nash.c

[snip]

Thanks for the patch, I'll look into similarities in the bash code if the shell really is the cause of my trouble.

Attachment: signature.asc
Description: OpenPGP digital signature