#! /bin/bash -u
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This script takes the out.txt, generated by heatmap_generator.py
# and sorted into a heatmap data file (inst-histo.txt) and then
# call gnu plot to draw the heat map and the time map.
# A heat map shows the overall hotness of instructions being executed
# while the time map shows the hotness of instruction at different time.
#
# Usage:
# ./perf-to-inst-page.sh HEATMAP_TITLE
# HEATMAP_TITLE: the title to display on the heatmap

HEAT_PNG="heat_map.png"
TIMELINE_PNG="timeline.png"
HEATMAP_TITLE=$1
ENABLE_HUGEPAGE=$2

heatmap_command="
set terminal png size 600,450
set xlabel \"Instruction Virtual Address (MB)\"
set ylabel \"Sample Occurance\"
set grid

set output \"${HEAT_PNG}\"
set title \"${HEATMAP_TITLE}\"
"

if [[ "${ENABLE_HUGEPAGE}" = "hugepage" ]]; then
  hugepage_hist="inst-histo-hp.txt"
  smallpage_hist="inst-histo-sp.txt"
  cat out.txt | grep hugepage | awk '{print $3}' \
    | sort -n | uniq -c > "${hugepage_hist}"
  cat out.txt | grep smallpage | awk '{print $3}' \
    | sort -n | uniq -c > "${smallpage_hist}"
  # generate inst heat map
  heatmap_in_hugepage=("'${hugepage_hist}' using \
(\$2/1024/1024):1 with impulses notitle lt rgb 'red'")
  heatmap_outside_hugepage=("'${smallpage_hist}' using \
(\$2/1024/1024):1 with impulses notitle lt rgb 'blue'")
  echo "
  ${heatmap_command}
  plot ${heatmap_in_hugepage}, ${heatmap_outside_hugepage}
  " | gnuplot
else
  awk '{print $3}' out.txt | sort -n | uniq -c > inst-histo.txt
  # generate inst heat map
  echo "
  ${heatmap_command}
  plot 'inst-histo.txt' using (\$2/1024/1024):1 with impulses notitle
  " | gnuplot
fi

# generate instruction page access timeline
num=$(awk 'END {print NR+1}' out.txt)

echo "
set terminal png size 600,450
set xlabel \"time (sec)\"
set ylabel \"Instruction Virtual Address (MB)\"

set output \"${TIMELINE_PNG}\"
set title \"instruction page accessd timeline\"

plot 'out.txt' using (\$0/$num*10):(\$3/1024/1024) with dots notitle
" | gnuplot
