* [PATCH 2/2] init/do_mounts.c: replace polling for root device with devtmpfs_wait_for_dev v1
@ 2009-08-06 9:40 tom.leiming
2009-10-09 17:30 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: tom.leiming @ 2009-08-06 9:40 UTC (permalink / raw)
To: greg; +Cc: linux-kernel, kay.sievers, akpm, Ming Lei
From: Ming Lei <tom.leiming@gmail.com>
This patch removes the polling for root device if rootwait parameter is
passed to kernel and CONFIG_DEVTMPFS is enabled. This way can lead to
a faster boot, especially booting from some asynchronous block device
(such as usb mass storage, mmc card, ...)
The patch has been verified in beagle board(mmc card as root device).
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
---
init/do_mounts.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/init/do_mounts.c b/init/do_mounts.c
index aa56007..46f0248 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -364,6 +364,7 @@ void __init mount_root(void)
void __init prepare_namespace(void)
{
int is_floppy;
+ int ret;
if (root_delay) {
printk(KERN_INFO "Waiting %dsec before mounting root device...\n",
@@ -371,6 +372,7 @@ void __init prepare_namespace(void)
ssleep(root_delay);
}
+#ifndef CONFIG_DEVTMPFS
/*
* wait for the known devices to complete their probing
*
@@ -379,6 +381,7 @@ void __init prepare_namespace(void)
* for the touchpad of a laptop to initialize.
*/
wait_for_device_probe();
+#endif
md_run_setup();
@@ -397,6 +400,7 @@ void __init prepare_namespace(void)
if (initrd_load())
goto out;
+#ifndef CONFIG_DEVTMPFS
/* wait for any asynchronous scanning to complete */
if ((ROOT_DEV == 0) && root_wait) {
printk(KERN_INFO "Waiting for root device %s...\n",
@@ -406,6 +410,18 @@ void __init prepare_namespace(void)
msleep(100);
async_synchronize_full();
}
+#else
+ /*wait for root device, and expire if 120 seconds elapse*/
+ if (!strncmp(saved_root_name, "/dev/", 5)) {
+ ret = devtmpfs_wait_for_dev(saved_root_name+5, 120);
+ printk(KERN_INFO "wait for %s based on devtmpfs:%d\n",
+ saved_root_name, ret);
+ }
+
+ ROOT_DEV = name_to_dev_t(saved_root_name);
+ if (!ROOT_DEV)
+ printk(KERN_ERR "Root device %s not found!\n", saved_root_name);
+#endif
is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR;
--
1.6.0.GIT
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 2/2] init/do_mounts.c: replace polling for root device with devtmpfs_wait_for_dev v1
2009-08-06 9:40 [PATCH 2/2] init/do_mounts.c: replace polling for root device with devtmpfs_wait_for_dev v1 tom.leiming
@ 2009-10-09 17:30 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2009-10-09 17:30 UTC (permalink / raw)
To: tom.leiming; +Cc: linux-kernel, kay.sievers, akpm
On Thu, Aug 06, 2009 at 05:40:42PM +0800, tom.leiming@gmail.com wrote:
> From: Ming Lei <tom.leiming@gmail.com>
>
> This patch removes the polling for root device if rootwait parameter is
> passed to kernel and CONFIG_DEVTMPFS is enabled. This way can lead to
> a faster boot, especially booting from some asynchronous block device
> (such as usb mass storage, mmc card, ...)
>
> The patch has been verified in beagle board(mmc card as root device).
>
> Signed-off-by: Ming Lei <tom.leiming@gmail.com>
> ---
> init/do_mounts.c | 16 ++++++++++++++++
> 1 files changed, 16 insertions(+), 0 deletions(-)
>
> diff --git a/init/do_mounts.c b/init/do_mounts.c
> index aa56007..46f0248 100644
> --- a/init/do_mounts.c
> +++ b/init/do_mounts.c
> @@ -364,6 +364,7 @@ void __init mount_root(void)
> void __init prepare_namespace(void)
> {
> int is_floppy;
> + int ret;
>
> if (root_delay) {
> printk(KERN_INFO "Waiting %dsec before mounting root device...\n",
> @@ -371,6 +372,7 @@ void __init prepare_namespace(void)
> ssleep(root_delay);
> }
>
> +#ifndef CONFIG_DEVTMPFS
> /*
> * wait for the known devices to complete their probing
> *
> @@ -379,6 +381,7 @@ void __init prepare_namespace(void)
> * for the touchpad of a laptop to initialize.
> */
> wait_for_device_probe();
> +#endif
Any way to do this without the #ifdef mess in the file? That's pretty
ugly, and hard to maintain.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-10-09 18:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-06 9:40 [PATCH 2/2] init/do_mounts.c: replace polling for root device with devtmpfs_wait_for_dev v1 tom.leiming
2009-10-09 17:30 ` Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.