@@ -584,6 +584,7 @@
*(.initcall0.init) \
*(.initcall0s.init) \
*(.initcall1.init) \
+ *(.initcallearlyrootfs.init) \
*(.initcall1s.init) \
*(.initcall2.init) \
*(.initcall2s.init) \
@@ -185,6 +185,7 @@ extern void (*late_time_init)(void);
#define pure_initcall(fn) __define_initcall("0",fn,0)
#define core_initcall(fn) __define_initcall("1",fn,1)
+#define earlyrootfs_initcall(fn) __define_initcall("earlyrootfs",fn,rootfs)
#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)
#define postcore_initcall(fn) __define_initcall("2",fn,2)
#define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)
@@ -614,4 +614,4 @@ static int __init populate_rootfs(void)
async_schedule_domain(async_populate_rootfs, NULL, &populate_rootfs_domain);
}
-rootfs_initcall(populate_rootfs);
+earlyrootfs_initcall(populate_rootfs);
Starting the asynchronous population of rootfs early in the boot sequence might reduce the boot time. Signed-off-by: Surbhi Palande <surbhi.palande@canonical.com> --- include/asm-generic/vmlinux.lds.h | 1 + include/linux/init.h | 1 + init/initramfs.c | 2 +- 3 files changed, 3 insertions(+), 1 deletions(-)