162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-or-later 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci# Author/Copyright(c): 2009, Thomas Renninger <trenn@suse.de>, Novell Inc. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci# Helper script to easily create nice plots of your cpufreq-bench results 862306a36Sopenharmony_ci 962306a36Sopenharmony_cidir=`mktemp -d` 1062306a36Sopenharmony_cioutput_file="cpufreq-bench.png" 1162306a36Sopenharmony_ciglobal_title="cpufreq-bench plot" 1262306a36Sopenharmony_cipicture_type="jpeg" 1362306a36Sopenharmony_cifile[0]="" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cifunction usage() 1662306a36Sopenharmony_ci{ 1762306a36Sopenharmony_ci echo "cpufreq-bench_plot.sh [OPTIONS] logfile [measure_title] [logfile [measure_title]] ...]" 1862306a36Sopenharmony_ci echo 1962306a36Sopenharmony_ci echo "Options" 2062306a36Sopenharmony_ci echo " -o output_file" 2162306a36Sopenharmony_ci echo " -t global_title" 2262306a36Sopenharmony_ci echo " -p picture_type [jpeg|gif|png|postscript|...]" 2362306a36Sopenharmony_ci exit 1 2462306a36Sopenharmony_ci} 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciif [ $# -eq 0 ];then 2762306a36Sopenharmony_ci echo "No benchmark results file provided" 2862306a36Sopenharmony_ci echo 2962306a36Sopenharmony_ci usage 3062306a36Sopenharmony_cifi 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciwhile getopts o:t:p: name ; do 3362306a36Sopenharmony_ci case $name in 3462306a36Sopenharmony_ci o) 3562306a36Sopenharmony_ci output_file="$OPTARG".$picture_type 3662306a36Sopenharmony_ci ;; 3762306a36Sopenharmony_ci t) 3862306a36Sopenharmony_ci global_title="$OPTARG" 3962306a36Sopenharmony_ci ;; 4062306a36Sopenharmony_ci p) 4162306a36Sopenharmony_ci picture_type="$OPTARG" 4262306a36Sopenharmony_ci ;; 4362306a36Sopenharmony_ci ?) 4462306a36Sopenharmony_ci usage 4562306a36Sopenharmony_ci ;; 4662306a36Sopenharmony_ci esac 4762306a36Sopenharmony_cidone 4862306a36Sopenharmony_cishift $(($OPTIND -1)) 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciplots=0 5162306a36Sopenharmony_ciwhile [ "$1" ];do 5262306a36Sopenharmony_ci if [ ! -f "$1" ];then 5362306a36Sopenharmony_ci echo "File $1 does not exist" 5462306a36Sopenharmony_ci usage 5562306a36Sopenharmony_ci fi 5662306a36Sopenharmony_ci file[$plots]="$1" 5762306a36Sopenharmony_ci title[$plots]="$2" 5862306a36Sopenharmony_ci # echo "File: ${file[$plots]} - ${title[plots]}" 5962306a36Sopenharmony_ci shift;shift 6062306a36Sopenharmony_ci plots=$((plots + 1)) 6162306a36Sopenharmony_cidone 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciecho "set terminal $picture_type" >> $dir/plot_script.gpl 6462306a36Sopenharmony_ciecho "set output \"$output_file\"" >> $dir/plot_script.gpl 6562306a36Sopenharmony_ciecho "set title \"$global_title\"" >> $dir/plot_script.gpl 6662306a36Sopenharmony_ciecho "set xlabel \"sleep/load time\"" >> $dir/plot_script.gpl 6762306a36Sopenharmony_ciecho "set ylabel \"Performance (%)\"" >> $dir/plot_script.gpl 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_cifor((plot=0;plot<$plots;plot++));do 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci # Sanity check 7262306a36Sopenharmony_ci ###### I am to dump to get this redirected to stderr/stdout in one awk call... ##### 7362306a36Sopenharmony_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}' 7462306a36Sopenharmony_ci ###### I am to dump to get this redirected in one awk call... ##### 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci # Parse out load time (which must be equal to sleep time for a plot), divide it by 1000 7762306a36Sopenharmony_ci # to get ms and parse out the performance in percentage and write it to a temp file for plotting 7862306a36Sopenharmony_ci cat ${file[$plot]} |grep -v "^#" |awk '{printf "%lu %.1f\n",$2/1000, $6}' >$dir/data_$plot 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci if [ $plot -eq 0 ];then 8162306a36Sopenharmony_ci echo -n "plot " >> $dir/plot_script.gpl 8262306a36Sopenharmony_ci fi 8362306a36Sopenharmony_ci echo -n "\"$dir/data_$plot\" title \"${title[$plot]}\" with lines" >> $dir/plot_script.gpl 8462306a36Sopenharmony_ci if [ $(($plot + 1)) -ne $plots ];then 8562306a36Sopenharmony_ci echo -n ", " >> $dir/plot_script.gpl 8662306a36Sopenharmony_ci fi 8762306a36Sopenharmony_cidone 8862306a36Sopenharmony_ciecho >> $dir/plot_script.gpl 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_cignuplot $dir/plot_script.gpl 9162306a36Sopenharmony_cirm -r $dir 92