summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongqin Liu <yongqin.liu@linaro.org>2017-01-26 17:12:16 +0800
committerMilosz Wasilewski <milosz.wasilewski@linaro.org>2017-02-14 13:34:44 +0000
commitcba462e2e1781f1d53cc4a35b8355911770abbb2 (patch)
treee174a0fbe3bd9eda9df448539997835008e0a410
parent1b2ee2c16d62a1c410059280b9525552b5c3fada (diff)
android boottime2: add description about the script
especial about what boottime information we measure, and how we get that boottime measurement Change-Id: Ia4096e258e196232ad6aecd4c14041c38eeede3d Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
-rwxr-xr-xandroid/scripts/boottime2.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/android/scripts/boottime2.sh b/android/scripts/boottime2.sh
index d8243ec..d9734fb 100755
--- a/android/scripts/boottime2.sh
+++ b/android/scripts/boottime2.sh
@@ -1,5 +1,69 @@
#!/system/bin/sh
+##############################################################################
+## Description about this boot time measuring script ####
+##############################################################################
+## This script will be run on the device, it has following 2 functions:
+## 1. collecting the dmesg log and logcat information, and save them under
+## /data/local/tmp/boottime
+## directory in the name for following format:
+## logcat_all_${COLLECT_NO}.log :
+## collected via command "logcat -d -v time *:V"
+## logcat_events_${COLLECT_NO}.log:
+## collected via command "logcat -d -b events -v time"
+## dmesg_${COLLECT_NO}.log:
+## collected via command "dmesg"
+## when this script is run as following:
+## ./android/scripts/boottime2.sh COLLECT ${COLLECT_NO}
+##
+## 2. analyzing boottime inforamtion from the collected log information
+## when this script is run as following:
+## ./android/scripts/boottime2.sh ANALYZE ${COLLECT_NO}
+##
+## it will get the average of multiple iterations for the boot time,
+## so that to get more stable and accurate boot time information:
+##
+## iterations < 4: the average will be calculated with all data
+## iterations >= 4: the average will be calculated with maximum
+## and minimum will be removed
+## For each iteration, it will get following boot time information:
+## (assuming kernel started at 0 timestamp in this script)
+##
+## TOTAL_TIME:
+## the sum of KERNEL_BOOT_TIME and ANDROID_BOOT_TIME
+##
+## KERNEL_BOOT_TIME:
+## from kernel started to line "Freeing unused kernel memory" printed,
+## it does not include kernel loading and uncompression part done
+## by bootloader or kernel itself
+##
+## ANDROID_BOOT_TIME: the time information is gotten from the line
+## contains "Boot is finished" like following in logcat:
+## 1-01 00:00:27.158 I/SurfaceFlinger( 1835): Boot is finished (13795 ms)
+## the time here means the time from surfaceflinger service started
+## to the time boot animation finished.
+## it does not include the time from init start to the time
+## surfaceflinger service started
+##
+## Also following time values are gotten from dmesg log information,
+## they are not accurate as what we expects, but are able to be used for
+## reference and used for checking our boot time improvements
+## FS_MOUNT_TIME:
+## from the time "Freeing unused kernel memory:" printed
+## to the time "init: Starting service 'logd'..." printed.
+##
+## FS_MOUNT_DURATION:
+## from the line "init: /dev/hw_random not found" printed
+## to the time "init: Starting service 'logd'..." printed
+##
+## BOOTANIM_TIME:
+## from the time "init: Starting service 'bootanim'..." printed
+## to the time "init: Service 'bootanim'.* exited with status" printed
+##
+## ANDROID_SERVICE_START_TIME:
+## from the time kernel started to the time healthd service started
+##############################################################################
+
local_file_path="$0"
local_file_parent=$(dirname "${local_file_path}")
local_file_parent=$(cd "${local_file_parent}"||exit; pwd)