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

IA64wiki: CaliperAverages (last edited 2007-01-09 03:47:19 by PeterChubb)

Gelato@UNSW is sponsored by
the University of New South Wales National ICT Australia The Gelato Federation Hewlett-Packard Company Australian Research Council
Please contact us with any questions or comments.