[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#401916: Bug 401916: analysis and suggested solution



heya david,

thanks for your excellent writeup.
yes i fully agree with your analysis,
will just followup on small nits..

On Fri, 16 Feb 2007, David Härdeman wrote:

> Short-term solution:
> 
> Therefore, I think the best short-term solution (considering the
> ever-impending Etch release) would be to add the "root_wait=" boot
> parameter so that affected users can set the timeout value manually. If
> that parameter was added, and documented in the release docs, the severity
> of these bugs could be downgraded (imho).

well we already check the rootdelay variable and it could easily be
exported and checked by the udev hook.
please no new boot variables. also aboves is the original meaning of
rootdelay, just currently "perverted" it's usage.
so yes this can be done easily.
 
> Alternatively, or additionally, the scripts could check whether one of
> several "problematic" modules have been loaded when udevsettle returns and
> if so, sleep a couple of extra seconds (most other distros that take this
> approach seem to wait around 6 - 10 seconds). The problem is that the list
> of problematic modules is potentially huge (see list of buses above)

additionally sounds like a good idea, plus an extra udevsettle call.
please cook up a patch for mika.
 
> Long-term solution:
> 
> In the long term (post-Etch), I think something like the following might
> be a good solution:
> 
> Take all scripts under /usr/share/initramfs-tools/scripts/local-top/ that
> setup block devices (i.e. cryptsetup, lvm, evms, etc), and split them in
> two, a udev rule snippet and a script.
> 
> The udev rule snippet would list the devices that this particular script
> is interested in, and tell udev to call the script whenever such a device
> node is created.
> 
> The script is basically the old script with minor changes so that it takes
> a device node as argument, and also so that it doesn't preserve any state
> between invocations.
> 
> Then the main init script is changed to sleep until $ROOT (not /dev/root
> but whatever is set as the $ROOT variable) appears

i agree that this was a possible and probable plan i thought of.
disadvantage currently you can exchange udev with some simple hotplug
script out of initramfs-tools and everything will work fine.
also the idea is to have an MODULES=MOST target that would
just add/run the needed modules and thus not include udev,
than aboves approach is in trouble.
so i'd put that up for discussion and we'll have enough time
to figure that out postetch.
 
happy to read you soon Alphix!
beeing on a conference didn't let me respond to your mail
immediately, sorry.

all the best
maks



Reply to: