Parallelize undependent jobs sandbox/sebuns2/init_parallelize
authorSung-hun Kim <sfoon.kim@samsung.com>
Thu, 30 Mar 2023 07:30:56 +0000 (16:30 +0900)
committerSung-hun Kim <sfoon.kim@samsung.com>
Thu, 30 Mar 2023 07:30:56 +0000 (16:30 +0900)
Signed-off-by: Sung-hun Kim <sfoon.kim@samsung.com>
scripts/init.sh

index 8de23f9d76df015d5af0215b2fad24a14830fa5f..e75d156112ff6a8822a86e3c438c3fd822ff4e44 100755 (executable)
@@ -241,12 +241,35 @@ function process_datafs()
     /bin/mount $DATAFS $DATAFS_MNT
 }
 
+function load_kernel_modules
+{
+    echo "Load kernel modules"
+
+    # module conf file doest not exist
+    config_cnt=$(/bin/find $MODULES_MNT/modules-load.d -name "*.conf" 2> /dev/null | /bin/wc -l)
+    if [ $config_cnt = 0 ]; then return; fi
+
+    for conf in $MODULES_MNT/modules-load.d/*.conf
+    do
+        echo "Read module conf: $conf"
+        while read module
+        do
+            module=$(echo "$module" | /bin/xargs)            # trim white space
+            if [ "$module" = "" ]; then continue; fi         # skip blank line
+            if [ "${module:0:1}" = "#" ]; then continue; fi  # skip # commented line
+
+            echo "Loading module: $module"
+            /sbin/modprobe --dirname=$ROOTFS_MNT --config=${ROOTFS_MNT}/lib/modules/modprobe.d $module &
+        done < $conf
+    done
+}
 
 function process_modulesfs
 {
     if [ x$MODULES = "x" ]; then return; fi
 
     /bin/mount -o ro $MODULES $MODULES_MNT
+    load_kernel_modules
 }
 
 
@@ -301,32 +324,6 @@ function write_resized_flag()
 }
 
 
-function load_kernel_modules
-{
-    echo "Load kernel modules"
-
-    # module conf file doest not exist
-    config_cnt=$(/bin/find $MODULES_MNT/modules-load.d -name "*.conf" 2> /dev/null | /bin/wc -l)
-    if [ $config_cnt = 0 ]; then return; fi
-
-    for conf in $MODULES_MNT/modules-load.d/*.conf
-    do
-        echo "Read module conf: $conf"
-        while read module
-        do
-            module=$(echo "$module" | /bin/xargs)            # trim white space
-            if [ "$module" = "" ]; then continue; fi         # skip blank line
-            if [ "${module:0:1}" = "#" ]; then continue; fi  # skip # commented line
-
-            echo "Loading module: $module"
-            /sbin/modprobe --dirname=$ROOTFS_MNT --config=${ROOTFS_MNT}/lib/modules/modprobe.d $module &
-        done < $conf
-    done
-
-    wait # wait all background jobs
-}
-
-
 function pivot_root()
 {
     if [ "$IN_INITRD" = "1" ]
@@ -384,13 +381,14 @@ find_partitions
 check_flags
 
 process_rootfs
-process_datafs
-process_modulesfs
-process_halfs
-process_userfs
+process_datafs &
+process_modulesfs &
+process_halfs &
+process_userfs &
+
 write_resized_flag
 
-load_kernel_modules
+wait # wait for all background jobs
 pivot_root
 change_root $@