1#!/bin/bash 2# SPDX-License-Identifier: GPL-2.0-or-later 3 4 5# Author/Copyright(c): 2009, Thomas Renninger <trenn@suse.de>, Novell Inc. 6 7# Helper script to easily create nice plots of your cpufreq-bench results 8 9dir=`mktemp -d` 10output_file="cpufreq-bench.png" 11global_title="cpufreq-bench plot" 12picture_type="jpeg" 13file[0]="" 14 15function usage() 16{ 17 echo "cpufreq-bench_plot.sh [OPTIONS] logfile [measure_title] [logfile [measure_title]] ...]" 18 echo 19 echo "Options" 20 echo " -o output_file" 21 echo " -t global_title" 22 echo " -p picture_type [jpeg|gif|png|postscript|...]" 23 exit 1 24} 25 26if [ $# -eq 0 ];then 27 echo "No benchmark results file provided" 28 echo 29 usage 30fi 31 32while getopts o:t:p: name ; do 33 case $name in 34 o) 35 output_file="$OPTARG".$picture_type 36 ;; 37 t) 38 global_title="$OPTARG" 39 ;; 40 p) 41 picture_type="$OPTARG" 42 ;; 43 ?) 44 usage 45 ;; 46 esac 47done 48shift $(($OPTIND -1)) 49 50plots=0 51while [ "$1" ];do 52 if [ ! -f "$1" ];then 53 echo "File $1 does not exist" 54 usage 55 fi 56 file[$plots]="$1" 57 title[$plots]="$2" 58 # echo "File: ${file[$plots]} - ${title[plots]}" 59 shift;shift 60 plots=$((plots + 1)) 61done 62 63echo "set terminal $picture_type" >> $dir/plot_script.gpl 64echo "set output \"$output_file\"" >> $dir/plot_script.gpl 65echo "set title \"$global_title\"" >> $dir/plot_script.gpl 66echo "set xlabel \"sleep/load time\"" >> $dir/plot_script.gpl 67echo "set ylabel \"Performance (%)\"" >> $dir/plot_script.gpl 68 69for((plot=0;plot<$plots;plot++));do 70 71 # Sanity check 72 ###### I am to dump to get this redirected to stderr/stdout in one awk call... ##### 73 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}' 74 ###### I am to dump to get this redirected in one awk call... ##### 75 76 # Parse out load time (which must be equal to sleep time for a plot), divide it by 1000 77 # to get ms and parse out the performance in percentage and write it to a temp file for plotting 78 cat ${file[$plot]} |grep -v "^#" |awk '{printf "%lu %.1f\n",$2/1000, $6}' >$dir/data_$plot 79 80 if [ $plot -eq 0 ];then 81 echo -n "plot " >> $dir/plot_script.gpl 82 fi 83 echo -n "\"$dir/data_$plot\" title \"${title[$plot]}\" with lines" >> $dir/plot_script.gpl 84 if [ $(($plot + 1)) -ne $plots ];then 85 echo -n ", " >> $dir/plot_script.gpl 86 fi 87done 88echo >> $dir/plot_script.gpl 89 90gnuplot $dir/plot_script.gpl 91rm -r $dir