Finding averages from Caliper output
The script below finds averages from dtlb and dcache reports
#!/bin/bash
if [ $# -ne 2]; then
echo "usage: grepit.sh [dtlb|dcache] filename"
exit 1
fi
file=$2
#dtlb
TLB_COVERAGE='100 \* (1 - L2DTLB_MISSES / DATA_REFERENCES)'
HPW_COVERAGE='100 \* (DTLB_INSERTS_HPW / DATA_REFERENCES)'
SW_COVERAGE='100 \* ((L2DTLB_MISSES - DTLB_INSERTS_HPW) / DATA_REFERENCES)'
L2HPW_COVERAGE='100 \* (DTLB_INSERTS_HPW / L2DTLB_MISSES)'
#dcache
L1D_MISSES='100 \* (L1D_READ_MISSES.ALL / L1D_READS)'
L1D_REFS='100 \* (L1D_READS / DATA_REFERENCES)'
case "$1" in
"dtlb")
grep_for=(TLB_COVERAGE HPW_COVERAGE SW_COVERAGE L2HPW_COVERAGE)
;;
"dcache")
grep_for=(L1D_MISSES L1D_REFS)
;;
esac
for element in $(seq 0 $((${#grep_for[@]}-1)))
do
g=${grep_for[$element]}
echo -n $g " "
grep "${!g}" $file | awk '{ s += $1 } END { print s/NR }'
done
