2016-12-07 06:08:10

by Jungseung Lee

[permalink] [raw]
Subject: [PATCH] init : Reduce rootwait polling interval time to 5ms

For several devices, the rootwait time is sensitive because it directly
affects booting time.
The polling interval of rootwait is currently 100ms.
To save unnessesary waiting time, reduce the polling interval to 5 ms.

Signed-off-by: Jungseung Lee <[email protected]>
---
init/do_mounts.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/init/do_mounts.c b/init/do_mounts.c
index dea5de9..b523820 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -543,6 +543,8 @@ void __init mount_root(void)
#endif
}

+#define ROOTWAIT_MSEC 5
+
/*
* Prepare the namespace - decide what/where to mount, load ramdisks, etc.
*/
@@ -588,7 +590,7 @@ void __init prepare_namespace(void)
saved_root_name);
while (driver_probe_done() != 0 ||
(ROOT_DEV = name_to_dev_t(saved_root_name)) == 0)
- msleep(100);
+ msleep(ROOTWAIT_MSEC);
async_synchronize_full();
}

--
2.10.1


2016-12-07 20:47:21

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] init : Reduce rootwait polling interval time to 5ms

On Wed, 07 Dec 2016 15:07:43 +0900 Jungseung Lee <[email protected]> wrote:

> For several devices, the rootwait time is sensitive because it directly
> affects booting time.
> The polling interval of rootwait is currently 100ms.
> To save unnessesary waiting time, reduce the polling interval to 5 ms.
>
> ...
>
> --- a/init/do_mounts.c
> +++ b/init/do_mounts.c
> @@ -543,6 +543,8 @@ void __init mount_root(void)
> #endif
> }
>
> +#define ROOTWAIT_MSEC 5
> +
> /*
> * Prepare the namespace - decide what/where to mount, load ramdisks, etc.
> */
> @@ -588,7 +590,7 @@ void __init prepare_namespace(void)
> saved_root_name);
> while (driver_probe_done() != 0 ||
> (ROOT_DEV = name_to_dev_t(saved_root_name)) == 0)
> - msleep(100);
> + msleep(ROOTWAIT_MSEC);
> async_synchronize_full();
> }

Fair enough. But I don't think the used-once #define adds any value,
so let's go with the simple version?

--- a/init/do_mounts.c~init-reduce-rootwait-polling-interval-time-to-5ms-fix
+++ a/init/do_mounts.c
@@ -543,8 +543,6 @@ void __init mount_root(void)
#endif
}

-#define ROOTWAIT_MSEC 5
-
/*
* Prepare the namespace - decide what/where to mount, load ramdisks, etc.
*/
@@ -590,7 +588,7 @@ void __init prepare_namespace(void)
saved_root_name);
while (driver_probe_done() != 0 ||
(ROOT_DEV = name_to_dev_t(saved_root_name)) == 0)
- msleep(ROOTWAIT_MSEC);
+ msleep(5);
async_synchronize_full();
}

_