#! /bin/bash -u
# Copyright 2015 The ChromiumOS 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
