Use shell parameter expansion rather than external cut and sed commands while parsing kernel command-line parameters in the initramfs.
On the target initramfs, 100 command-line parser runs took 13.48 s before this change and 0.51 s afterwards. This reduces the per-run cost from 134.8 ms to 5.1 ms. Signed-off-by: Wenwen Fu <[email protected]> --- meta/recipes-core/initrdscripts/initramfs-framework/init | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init b/meta/recipes-core/initrdscripts/initramfs-framework/init index 67590ad765..62d8ccfd0c 100755 --- a/meta/recipes-core/initrdscripts/initramfs-framework/init +++ b/meta/recipes-core/initrdscripts/initramfs-framework/init @@ -104,13 +104,14 @@ 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//./_} + opt=${opt//-/_} + 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 (#245661): https://lists.openembedded.org/g/openembedded-core/message/245661 Mute This Topic: https://lists.openembedded.org/mt/121200898/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
