Skip to contentSkip to conversation

add option --printsize

PATCH In review Dave Young 3 participants 4 messages May 21, 2012 3 messages not in the archive

lore
Share & tools
lore

Dave Young

author
#0 lore raw

PATCH 1/1 add option --printsize

Add --printsize for measuring module installed size to initramfs

---
 dracut.sh |   11 +++++++++++
 1 file changed, 11 insertions(+)
dracut.sh +11 -0
@@ -123,6 +123,7 @@ Creates initial ramdisk images for prelo
   -M, --show-modules    Print included module's name to standard output during
                          build.
   --keep                Keep the temporary initramfs for debugging purposes
+  --printsize           Print out the module install size
   --sshkey [SSHKEY]     Add ssh key to initramfs (use with ssh-client module)
 
 If [LIST] has multiple arguments, then you have to put these in quotes.
@@ -268,6 +269,7 @@ while (($# > 0)); do
                        show_modules_l="yes"
                        ;;
         --keep)        keep="yes";;
+        --printsize)   printsize="yes";;
         -*) printf "\nUnknown option: %s\n\n" "$1" >&2; usage; exit 1;;
         *)
             if ! [[ ${outfile+x} ]]; then
@@ -700,6 +702,7 @@ mods_to_load=""
 for_each_module_dir check_module
 for_each_module_dir check_mount
 
+_isize=0 #initramfs size
 modules_loaded=" "
 # source our modules.
 for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
@@ -717,6 +720,14 @@ for moddir in "$dracutbasedir/modules.d"
         fi
         mods_to_load=${mods_to_load// $_d_mod /}
         modules_loaded+="$_d_mod "
+
+        #print the module install size
+        if [ -n "$printsize" ]; then
+            _isize_new=$(du -sk ${initdir}|cut -f1)
+            _isize_delta=$(($_isize_new - $_isize))
+            echo "$_d_mod install size: ${_isize_delta}k"
+            _isize=$_isize_new
+        fi
     fi
 done
 unset moddir

A message that is not in the archive (sent off-list or not yet received): 20120521083706.GA3040-bi+AKbBUZKY6gyzm1THtWbp2dZbC/[email protected]

#2 lore raw
Quoted 2 lines · Dave Young

Add --printsize for measuring module installed size to initramfs

...

dracut.sh for moddir in "$dracutbasedir/modules.d" · line 731

Quoted 9 lines
dracut.sh +8 -0
+
+        #print the module install size
+        if [ -n "$printsize" ]; then
+            _isize_new=$(du -sk ${initdir}|cut -f1)
+            _isize_delta=$(($_isize_new - $_isize))
+            echo "$_d_mod install size: ${_isize_delta}k"
+            _isize=$_isize_new
+        fi
      fi

Yeah, it is a nice feature, to calculate the module installation size by delta of the whole initrd size.

Could you include the sample output in the changelog?

Thanks.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw

Am 21.05.2012 10:43, schrieb Cong Wang:

Quoted 14 lines · Dave Young
Quoted 2 lines

Add --printsize for measuring module installed size to initramfs

...

dracut.sh for moddir in "$dracutbasedir/modules.d" · line 731

Quoted 9 lines
dracut.sh +8 -0
+
+        #print the module install size
+        if [ -n "$printsize" ]; then
+            _isize_new=$(du -sk ${initdir}|cut -f1)
+            _isize_delta=$(($_isize_new - $_isize))
+            echo "$_d_mod install size: ${_isize_delta}k"
+            _isize=$_isize_new
+        fi
      fi
Quoted 6 lines

Yeah, it is a nice feature, to calculate the module installation size by delta of the whole initrd size.

Could you include the sample output in the changelog?

Thanks.

What about files used by many modules, like shared libraries and tools? The output should be taken with a grain of salt.

A message that is not in the archive (sent off-list or not yet received): [email protected]

author
#6 lore raw
Quoted 19 lines · Harald Hoyer

Am 21.05.2012 10:43, schrieb Cong Wang:

Quoted 18 lines · Dave Young
Quoted 2 lines

Add --printsize for measuring module installed size to initramfs

...

dracut.sh for moddir in "$dracutbasedir/modules.d" · line 731

Quoted 9 lines
dracut.sh +8 -0
+
+        #print the module install size
+        if [ -n "$printsize" ]; then
+            _isize_new=$(du -sk ${initdir}|cut -f1)
+            _isize_delta=$(($_isize_new - $_isize))
+            echo "$_d_mod install size: ${_isize_delta}k"
+            _isize=$_isize_new
+        fi
      fi

Yeah, it is a nice feature, to calculate the module installation size by delta of the whole initrd size.

Could you include the sample output in the changelog?

Hi cong, I just reply here of a sample, will add it if need a v2 patch:

[dave@localhost dracut]$ ./dracut.sh -l --printsize test.img 2>/dev/null dash install size: 2372k
caps install size: 1148k
i18n install size: 3144k
rpmversion install size: 4k
network install size: 8688k
ifcfg install size: 8k
plymouth install size: 26000k
btrfs install size: 336k
crypt install size: 2572k
dm install size: 252k
dmraid install size: 356k
kernel-modules install size: 55548k
lvm install size: 2016k
mdraid install size: 800k
multipath install size: 748k
fcoe install size: 780k
iscsi install size: 520k
nfs install size: 22096k
resume install size: 12k
rootfs-block install size: 12k
terminfo install size: 60k
udev-rules install size: 956k
virtfs install size: 380k
biosdevname install size: 92k
usrmount install size: 4k
base install size: 1348k
fs-lib install size: 2324k
shutdown install size: 396k

Quoted 5 lines
Quoted 2 lines

Thanks.

What about files used by many modules, like shared libraries and tools? The output should be taken with a grain of salt.

This rough printing at least can help use measure the module install size which is not shared. It is the increased size directly caused by the specific module_install.

Shared libraries is not considered here. It's hard to measure the shared part.. Do you have any idea or suggestions?

Quoted 4 lines

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Thanks
Dave