Hi,

  Gentle ping on this patch series.
  Could someone please take a look when you have a chance?

  Thanks,
  Wenwen

________________________________
From: Wenwen Fu <[email protected]>
Sent: Saturday, September 12, 2026 22:37
To: [email protected] 
<[email protected]>
Cc: Wenwen Fu <[email protected]>
Subject: [PATCH v2 1/2] initramfs-framework: avoid processes when parsing 
cmdline

Use POSIX shell parameter expansion instead of external cut and sed
while parsing kernel command-line parameters. This keeps the parser
compatible with /bin/sh implementations that do not support Bash-style
pattern substitution while avoiding per-parameter processes.

On QEMU, cmdline parsing decreased from 1.381871 s to 0.056985 s,
a 95.9% reduction.

Tested with dash and BusyBox sh syntax checks and QEMU.

AI-Generated: OpenAI Codex
Signed-off-by: Wenwen Fu <[email protected]>
---
Changes since v1:
- Replace Bash-style substitution with POSIX-compatible logic, removing
  the dependency on Bash-specific shell features.
- Split the module-loop cleanup into a separate second patch.
- Add QEMU performance measurements.

 .../initrdscripts/initramfs-framework/init        | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init 
b/meta/recipes-core/initrdscripts/initramfs-framework/init
index 67590ad765..e560d25d53 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/init
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/init
@@ -104,13 +104,20 @@ for p in `cat /proc/cmdline`; do
                 continue
         fi

-       opt=`echo $p | cut -d'=' -f1`
-       opt=`echo $opt | sed -e 'y/.-/__/'`
-       if [ "`echo $p | cut -d'=' -f1`" = "$p" ]; then
+       key=${p%%=*}
+       opt=$key
+       while :; do
+               case "$opt" in
+                       *.*) opt=${opt%%.*}_${opt#*.} ;;
+                       *-*) opt=${opt%%-*}_${opt#*-} ;;
+                       *) break ;;
+               esac
+       done
+       if [ "$key" = "$p" ]; then
                 # opt parameter
                 eval "bootparam_${opt}=true"
         else
-               value="`echo $p | cut -d'=' -f2-`"      # Option value
+               value=${p#*=}   # Option value
                 value_lstripped=${value#\"}
                 value_rstripped=${value%\"}


--
2.43.0
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#246273): 
https://lists.openembedded.org/g/openembedded-core/message/246273
Mute This Topic: https://lists.openembedded.org/mt/121224836/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to