84 lines
2.7 KiB
Bash
Executable File
84 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) 2023 Huawei Device Co., Ltd.
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -e
|
|
|
|
HDC='/home/yinchuang/Task/dlopen/toolchains//hdc_std -s 10.121.251.143:8710 '
|
|
|
|
function lock_cpu() {
|
|
$HDC shell "mount -o rw,remount /vendor"
|
|
$HDC shell "rm -rf /vendor/etc/soc_perf/*"
|
|
$HDC shell "echo 1700000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"
|
|
$HDC shell "echo 2343000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq"
|
|
$HDC shell "echo 3130000 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq"
|
|
$HDC shell "echo 4-7 > /dev/cpuset/top-app/cpuset.cpus"
|
|
$HDC shell "echo 4-7 > /dev/cpuset/graphic/cpuset.cpus"
|
|
echo "current freqency: "
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu5/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_cur_freq"
|
|
$HDC shell "cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_cur_freq"
|
|
|
|
$HDC shell power-shell setmode 602
|
|
}
|
|
|
|
function usage() {
|
|
echo "usage: $0 -r {the number of runs} -p {case path in phone}"
|
|
exit 1
|
|
}
|
|
|
|
REPS=50
|
|
CASE_PATH="/data/local/tmp/musl_dlopen"
|
|
|
|
while getopts "hp:r:" OPT
|
|
do
|
|
case "$OPT" in
|
|
p) CASE_PATH=$OPTARG;;
|
|
r) REPS=$OPTARG;;
|
|
h) usage;;
|
|
*)
|
|
echo "unknown options $opt"
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo REPS:$REPS
|
|
echo CASE_PATH:$CASE_PATH
|
|
time=$(date "+%Y%m%d-%H%M%S")
|
|
result_file="dlopen_cost_${time}.txt"
|
|
|
|
lock_cpu
|
|
|
|
for((i=1;i<=${REPS};i++));
|
|
do
|
|
$HDC shell $CASE_PATH | grep "dlopen" >> ${result_file}
|
|
done
|
|
|
|
echo "save results to dlopen_cost_${time}.txt"
|
|
|
|
err=$(cat ${result_file} | grep "dlopen error" | wc -l )
|
|
if [ $err -gt 0 ];
|
|
then
|
|
echo "dlopen failed!!!"
|
|
exit 1
|
|
fi
|
|
|
|
cat ${result_file} | awk 'BEGIN{ave=0; num=0} {ave+=$4;num++} END{print "dlopen cost(ave): " ave/num "(ms)", "num:" num}'
|