Skip to content

Instantly share code, notes, and snippets.

@doevelopper
Last active August 7, 2018 14:37
Show Gist options
  • Save doevelopper/1823a16f1e699700834d237348a33344 to your computer and use it in GitHub Desktop.
Save doevelopper/1823a16f1e699700834d237348a33344 to your computer and use it in GitHub Desktop.

Perform a test with prio 80 for 60 sec

># cyclictest -p80 -n -D 60
># cyclictest -l100 -m -S -p90 -i200 -h400 -q
># cyclictest -l100 -m -n -a0 -t1 -p99 -i400 -h1000 -q

https://www.osadl.org/uploads/media/mklatencyplot.bash

#!/bin/bash

# 1. Run cyclictest
cyclictest -l100000000 -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=`nproc`

# 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment