12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/bin/bash
- # 1. Run cyclictest
- /home/pi/rt-tests/cyclictest -l10000000 -m -Sp90 -i200 -h400 -q >output
- # 2. Get maximum latency
- max=`grep "Max Latencies" output | tr " " "\n" | sort -n | tail -1 | sed s/^0*//`
- # 3. Grep data lines, remove empty lines and create a common field separator
- grep -v -e "^#" -e "^$" output | tr " " "\t" >histogram
- # 4. Set the number of cores, for example
- cores=4
- # 5. Create two-column data sets with latency classes and frequency values for each core, for example
- for i in `seq 1 $cores`
- do
- column=`expr $i + 1`
- cut -f1,$column histogram >histogram$i
- done
- # 6. Create plot command header
- echo -n -e "set title \"Latency plot\"\n\
- set terminal png\n\
- set xlabel \"Latency (us), max $max us\"\n\
- set logscale y\n\
- set xrange [0:400]\n\
- set yrange [0.8:*]\n\
- set ylabel \"Number of latency samples\"\n\
- set output \"plot.png\"\n\
- plot " >plotcmd
- # 7. Append plot command data references
- for i in `seq 1 $cores`
- do
- if test $i != 1
- then
- echo -n ", " >>plotcmd
- fi
- cpuno=`expr $i - 1`
- if test $cpuno -lt 10
- then
- title=" CPU$cpuno"
- else
- title="CPU$cpuno"
- fi
- echo -n "\"histogram$i\" using 1:2 title \"$title\" with histeps" >>plotcmd
- done
- # 8. Execute plot command
- gnuplot -persist <plotcmd
|