18c2ecf20Sopenharmony_ci#!/bin/bash 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-or-later 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci# Author/Copyright(c): 2009, Thomas Renninger <trenn@suse.de>, Novell Inc. 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci# Helper script to easily create nice plots of your cpufreq-bench results 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidir=`mktemp -d` 108c2ecf20Sopenharmony_cioutput_file="cpufreq-bench.png" 118c2ecf20Sopenharmony_ciglobal_title="cpufreq-bench plot" 128c2ecf20Sopenharmony_cipicture_type="jpeg" 138c2ecf20Sopenharmony_cifile[0]="" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cifunction usage() 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci echo "cpufreq-bench_plot.sh [OPTIONS] logfile [measure_title] [logfile [measure_title]] ...]" 188c2ecf20Sopenharmony_ci echo 198c2ecf20Sopenharmony_ci echo "Options" 208c2ecf20Sopenharmony_ci echo " -o output_file" 218c2ecf20Sopenharmony_ci echo " -t global_title" 228c2ecf20Sopenharmony_ci echo " -p picture_type [jpeg|gif|png|postscript|...]" 238c2ecf20Sopenharmony_ci exit 1 248c2ecf20Sopenharmony_ci} 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciif [ $# -eq 0 ];then 278c2ecf20Sopenharmony_ci echo "No benchmark results file provided" 288c2ecf20Sopenharmony_ci echo 298c2ecf20Sopenharmony_ci usage 308c2ecf20Sopenharmony_cifi 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciwhile getopts o:t:p: name ; do 338c2ecf20Sopenharmony_ci case $name in 348c2ecf20Sopenharmony_ci o) 358c2ecf20Sopenharmony_ci output_file="$OPTARG".$picture_type 368c2ecf20Sopenharmony_ci ;; 378c2ecf20Sopenharmony_ci t) 388c2ecf20Sopenharmony_ci global_title="$OPTARG" 398c2ecf20Sopenharmony_ci ;; 408c2ecf20Sopenharmony_ci p) 418c2ecf20Sopenharmony_ci picture_type="$OPTARG" 428c2ecf20Sopenharmony_ci ;; 438c2ecf20Sopenharmony_ci ?) 448c2ecf20Sopenharmony_ci usage 458c2ecf20Sopenharmony_ci ;; 468c2ecf20Sopenharmony_ci esac 478c2ecf20Sopenharmony_cidone 488c2ecf20Sopenharmony_cishift $(($OPTIND -1)) 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciplots=0 518c2ecf20Sopenharmony_ciwhile [ "$1" ];do 528c2ecf20Sopenharmony_ci if [ ! -f "$1" ];then 538c2ecf20Sopenharmony_ci echo "File $1 does not exist" 548c2ecf20Sopenharmony_ci usage 558c2ecf20Sopenharmony_ci fi 568c2ecf20Sopenharmony_ci file[$plots]="$1" 578c2ecf20Sopenharmony_ci title[$plots]="$2" 588c2ecf20Sopenharmony_ci # echo "File: ${file[$plots]} - ${title[plots]}" 598c2ecf20Sopenharmony_ci shift;shift 608c2ecf20Sopenharmony_ci plots=$((plots + 1)) 618c2ecf20Sopenharmony_cidone 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciecho "set terminal $picture_type" >> $dir/plot_script.gpl 648c2ecf20Sopenharmony_ciecho "set output \"$output_file\"" >> $dir/plot_script.gpl 658c2ecf20Sopenharmony_ciecho "set title \"$global_title\"" >> $dir/plot_script.gpl 668c2ecf20Sopenharmony_ciecho "set xlabel \"sleep/load time\"" >> $dir/plot_script.gpl 678c2ecf20Sopenharmony_ciecho "set ylabel \"Performance (%)\"" >> $dir/plot_script.gpl 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_cifor((plot=0;plot<$plots;plot++));do 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci # Sanity check 728c2ecf20Sopenharmony_ci ###### I am to dump to get this redirected to stderr/stdout in one awk call... ##### 738c2ecf20Sopenharmony_ci cat ${file[$plot]} |grep -v "^#" |awk '{if ($2 != $3) printf("Error in measure %d:Load time %s does not equal sleep time %s, plot will not be correct\n", $1, $2, $3); ERR=1}' 748c2ecf20Sopenharmony_ci ###### I am to dump to get this redirected in one awk call... ##### 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci # Parse out load time (which must be equal to sleep time for a plot), divide it by 1000 778c2ecf20Sopenharmony_ci # to get ms and parse out the performance in percentage and write it to a temp file for plotting 788c2ecf20Sopenharmony_ci cat ${file[$plot]} |grep -v "^#" |awk '{printf "%lu %.1f\n",$2/1000, $6}' >$dir/data_$plot 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci if [ $plot -eq 0 ];then 818c2ecf20Sopenharmony_ci echo -n "plot " >> $dir/plot_script.gpl 828c2ecf20Sopenharmony_ci fi 838c2ecf20Sopenharmony_ci echo -n "\"$dir/data_$plot\" title \"${title[$plot]}\" with lines" >> $dir/plot_script.gpl 848c2ecf20Sopenharmony_ci if [ $(($plot + 1)) -ne $plots ];then 858c2ecf20Sopenharmony_ci echo -n ", " >> $dir/plot_script.gpl 868c2ecf20Sopenharmony_ci fi 878c2ecf20Sopenharmony_cidone 888c2ecf20Sopenharmony_ciecho >> $dir/plot_script.gpl 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_cignuplot $dir/plot_script.gpl 918c2ecf20Sopenharmony_cirm -r $dir 92