#!/bin/bash
# Copyright 2016 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.
#
# Script for generating and running telemetry benchmarkes via crosperf with
# different perf command lines in order to measure the impact of the perf
# commands on performance. Crosperf cannot run the same benchmark multiple
# times, so this script runs crosperf multpilpe times instead. Unfortunately,
# this means you must compare the results yourself.
#
# Perf will run for the entire benchmark run, so results should be interpreted
# in that context. i.e, if this shows a 3% overhead for a particular perf
# command, that overhead would only be seen during the 2 seconds of measurement
# during a ChromeOS Wide Profiling collection.
set -e

board=xxx #<you-board-here>
remote=xxx #<your-remote-here>
iterations=5
chromeos_root=~/chromiumos
chrome_src=~/chromium


function GenerateExperiment() {
  local perf_args="${1:+perf_args: $1}"
  local track="$2"  # stable, beta, dev

  cat <<_EOF
$perf_args
benchmark: page_cycler_v2.typical_25 {
    suite: telemetry_Crosperf
}

$track {
  build: latest-$track
}
_EOF
}

function RunExperiment() {
  local name="$1"
  local perf_command="$2"
  GenerateExperiment "$perf_command" "stable" > /tmp/crosperf.exp
  ./crosperf /tmp/crosperf.exp \
    --name telemetry_perf_perf_${name} \
    --board="${board}" \
    --remote="${remote}" \
    --iterations="${iterations}" \
    --chromeos_root="${chromeos_root}" \
    --chrome_src="${chrome_src}" \
    --rerun=true \
    --use_file_locks=true \
    --locks_dir=/tmp/crosperf.locks
}

if [ "$board" = "xxx" -o "$remote" = "xxx" ]; then
  echo "Please set board and remote at the top of this script before running."
  exit -1
fi


# Note that "-a" is automatically inserted in the perf command line.

# Control: No profiling.
RunExperiment 'control' ''
# This is our baseline standard 'cycles' perf command.
RunExperiment 'cycles.flat' \
  'record -e cycles -c 1000003'
# Callgraph profiling.
RunExperiment 'cycles.callgraph' \
  'record -g -e cycles -c 4000037'
# Memory bandwidth profiling. As a perf stat command, we expect imperceptible
# overhead.
RunExperiment 'memory.bandwidth' \
  'stat -e cycles -e instructions -e uncore_imc/data_reads/ -e uncore_imc/data_writes/ -e cpu/event=0xD0,umask=0x11,name=MEM_UOPS_RETIRED-STLB_MISS_LOADS/ -e cpu/event=0xD0,umask=0x12,name=MEM_UOPS_RETIRED-STLB_MISS_STORES/'

