Re: [PATCH] speedy boot from usb devices

From: Paulo Marques
Date: Mon Aug 02 2004 - 06:41:05 EST


David N. Welton wrote:
[ Please CC replies to me - thanks! ]

Hi,

I gather that there isn't much interest in this idea on behalf of the
'mainstream', because initrd is a far more flexible solution, but I
happen to like the idea of booting quickly from a USB device, without
wasting a bunch of time and space for an initrd, and we're using this
in a product as well, so without further ado, I'll point you at

http://dedasys.com/freesoftware/patches/

where you can get blkdev_wakeup.patch

Works like so: whenever a block device comes on line, it
signals this fact to a wait queue, so that the init process
can stop and wait for slow devices, in particular things such
as USB storage devices, which are much slower than IDE
devices. The init process checks the list of available
devices and compares it with the desired root device, and if
there is a match, proceeds with the initialization process,
secure in the knowledge that the device in question has been
brought up. This is useful if one wants to boot quickly from
a USB storage device without a trimmed-down kernel, and
without going through the whole initrd slog.

Comments, critiques, suggestions and ideas are all welcome.

I find this to be very useful. I always found the "sleep for a while until the device we want appears" approach very cumbersome.

However, after looking at your patch, it seems that having a get_blkdevs() function that alloc's an array of strings, and return it to a function that only compares the strings against the name it is looking for and drops the array altogether, is a little overkill.

Why not have a simple blkdev_exists(char *name) function in genhd.c, call it directly, and drop the match_root_name() function completely?

Maybe I'm missing something, but it seems much simpler...

--
Paulo Marques - www.grupopie.com
"In a world without walls and fences who needs windows and gates?"
-
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/