init: support init ramfs async

If enable ramfs function, init ramfs async,
can reduce kernel init time.

Change-Id: I95d8ca6d8b9c4e9c738c635c5ee56391cbbe7c16
Signed-off-by: Liao Huaping <huaping.liao@rock-chips.com>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This commit is contained in:
Liao Huaping
2019-03-11 18:32:35 +08:00
committed by Tao Huang
parent c3a852d019
commit 7be803f0d5
3 changed files with 28 additions and 0 deletions
+5
View File
@@ -1310,6 +1310,11 @@ if BLK_DEV_INITRD
source "usr/Kconfig"
config INITRD_ASYNC
bool "Initrd async"
help
Init ramdisk async, can reduce kernel init time.
endif
config BOOT_CONFIG
+19
View File
@@ -639,4 +639,23 @@ done:
flush_delayed_fput();
return 0;
}
#if IS_BUILTIN(CONFIG_INITRD_ASYNC)
#include <linux/kthread.h>
#include <linux/async.h>
static void __init unpack_rootfs_async(void *unused, async_cookie_t cookie)
{
populate_rootfs();
}
static int __init populate_rootfs_async(void)
{
async_schedule(unpack_rootfs_async, NULL);
return 0;
}
pure_initcall(populate_rootfs_async);
#else
rootfs_initcall(populate_rootfs);
#endif
+4
View File
@@ -1550,6 +1550,10 @@ static noinline void __init kernel_init_freeable(void)
kunit_run_all_tests();
#if IS_BUILTIN(CONFIG_INITRD_ASYNC)
async_synchronize_full();
#endif
console_on_rootfs();
/*