Merge mlx5-next into rdma for-next
[linux-2.6-block.git] / tools / power / cpupower / bench / cpufreq-bench_plot.sh
CommitLineData
7fe2f639 1#!/bin/bash
e78d0eab 2# SPDX-License-Identifier: GPL-2.0-or-later
7fe2f639 3
7fe2f639
DB
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