On 4/6/06, Fredrik Tolf <[EMAIL PROTECTED]> wrote:
> I'll give you the data you requested anyway, though. Please tell me if
> something is strange.

Actually, I forgot a question, that is "what version of baselayout are
you using?".

There are 2 possible race conditions that I see in your current setup:

1. As you mention, I believe the detection of disks and partitions
happens asynchronously after the module is loaded.  I haven't checked
the kernel source to be sure however.  Since these volumes are on
different buses than your root filesystem, loads of modules (dm_mod
for example) or the programs (lvm2), are not going to block waiting
for the IOs on these buses to complete.  Still, the detection happens
pretty quick, and I'm not convinced this is the problem.

2. The second case for a race condition is with udev.  Since each disk
and partition detected is going to generate a hotplug event to udev,
and again these events are handled asynchronously to anything else on
the system, there could be a small delay between the detection of the
device and when the node actually appears in /dev.  The mechanism used
for the kernel and udev to communicate varies depending upon the
kernel and udev version, so one kernel may exhibit this problem while
another would not.

I am assuming at this point that you are running the stable
baselayout, 1.11.14-r6.  Because with the current ~x86 baselayout, I
don't see how your setup could work at all.  The call to start_volumes
has been moved from checkfs to the /sbin/rc script, right after udev
is started, but before the critical boot services are run (e.g,
modules).

I really think the right thing to do would be to recompile your
kerrnel and build the bus and sd_mod drivers into your kernel.  This
should ensure that all of the drives and partitions are detected
before the /sbin/rc script runs, and the device nodes will be created
when udev starts.

If you are reallly against building those into your kerrnel, I would
make a /etc/modules.d/lvm file that contains:

install dm_mod /sbin/modprobe sd_mod pdc202xx_new sata_sil; \
    /sbin/modprobe --ignore-install dm_mod; \
    /bin/sleep 0.2

Then run modules-update to recreate /etc/modules.conf.  This will
cause those modules to be loaded before dm_mod, give some time for the
devices to be detected and nodes to be created, and ensure that your
system survives a baselayout change.

-- 
gentoo-user@gentoo.org mailing list

Reply via email to