Re: waiting 10s before mounting root filesystem?

From: Paulo Marques
Date: Fri Dec 31 2004 - 07:07:19 EST


Andrew Morton wrote:
Paulo Marques <pmarques@xxxxxxxxxxxx> wrote:

Andrew Morton wrote:

William Park <opengeometry@xxxxxxxx> wrote:


- printk("VFS: Cannot open root device \"%s\" or %s\n",
- root_device_name, b);
- printk("Please append a correct \"root=\" boot option\n");
+ if (--tryagain) {
+ printk (KERN_WARNING "VFS: Waiting %dsec for root device...\n", tryagain);
+ ssleep (1);
+ goto retry;
+ }
+ printk (KERN_CRIT "VFS: Cannot open root device \"%s\" or %s\n", root_device_name, b);
+ printk (KERN_CRIT "Please append a correct \"root=\" boot option\n");


Why is this patch needed? If it is to offer the user a chance to insert
the correct medium or to connect the correct device, why not rely upon the
user doing that thing and then hitting reset?

No, no. The problem is not user interaction.

The problem is that the USB subsystem takes a lot of time to go through the hostcontrollers -> hubs -> devices. By the time it finds the USB mass storage that is supposed to be used as root filesystem, the kernel had already panic'ed.


That would be a USB bug, surely. If /dev/usb/foo is present and
functioning correctly, and higher-level code tries to access that device,
USB should _not_ error out - it should block the caller until everything is
sorted out.

The problem is that, if you use udev (or iack, iack, cough, cough, devfs), the device node is not yet present at the time the kernel tries to mount it, although the hardware is physically there. This is because the USB subsystem is busy going through all the USB tree, enumerating / reseting devices, powering hubs, etc.

I really don't know enough about the internal details, but it seems that the USB startup sequence is asynchronous with respect to the rest of the boot sequence. This is usually allright (I really don't want the detection of my USB scanner to hold back my boot), but in the special case where the root filesystem is in a USB mass storage device, it poses a real problem.

Maybe someone like Grek Kroah, Alan Stern, etc., can shed some more light on this matter.

--
Paulo Marques - www.grupopie.com

"A journey of a thousand miles begins with a single step."
Lao-tzu, The Way of Lao-tzu

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/