1*02ca8ccaSAndroid Build Coastguard Worker#!/bin/bash 2*02ca8ccaSAndroid Build Coastguard Worker 3*02ca8ccaSAndroid Build Coastguard WorkerWINDOW=$1 4*02ca8ccaSAndroid Build Coastguard WorkerPERIOD=$2 5*02ca8ccaSAndroid Build Coastguard Worker 6*02ca8ccaSAndroid Build Coastguard Workerif [[ -z $WINDOW ]] || [[ -z $PERIOD ]]; then 7*02ca8ccaSAndroid Build Coastguard Worker echo "Window or Period not specified!" 8*02ca8ccaSAndroid Build Coastguard Worker echo "Example usage: ./set_strobing.sh <WINDOW VALUE> <PERIOD VALUE>" 9*02ca8ccaSAndroid Build Coastguard Worker echo "Example usage: ./set_strobing.sh 5000 10000" 10*02ca8ccaSAndroid Build Coastguard Worker exit -1 11*02ca8ccaSAndroid Build Coastguard Workerfi 12*02ca8ccaSAndroid Build Coastguard Worker 13*02ca8ccaSAndroid Build Coastguard Worker 14*02ca8ccaSAndroid Build Coastguard Workerif [[ $EUID != 0 ]]; then 15*02ca8ccaSAndroid Build Coastguard Worker echo "Please run as root" 16*02ca8ccaSAndroid Build Coastguard Worker exit -1 17*02ca8ccaSAndroid Build Coastguard Workerfi 18*02ca8ccaSAndroid Build Coastguard Worker 19*02ca8ccaSAndroid Build Coastguard Workerfor e in /sys/bus/coresight/devices/etm*/; do 20*02ca8ccaSAndroid Build Coastguard Worker printf "%x" $WINDOW | tee $e/strobe_window > /dev/null 21*02ca8ccaSAndroid Build Coastguard Worker printf "%x" $PERIOD | tee $e/strobe_period > /dev/null 22*02ca8ccaSAndroid Build Coastguard Worker echo "Strobing period for $e set to $((`cat $e/strobe_period`))" 23*02ca8ccaSAndroid Build Coastguard Worker echo "Strobing window for $e set to $((`cat $e/strobe_window`))" 24*02ca8ccaSAndroid Build Coastguard Workerdone 25*02ca8ccaSAndroid Build Coastguard Worker 26*02ca8ccaSAndroid Build Coastguard Worker## Shows the user a simple usage example 27*02ca8ccaSAndroid Build Coastguard Workerecho ">> Done! <<" 28*02ca8ccaSAndroid Build Coastguard Workerecho "You can now run perf to trace your application, for example:" 29*02ca8ccaSAndroid Build Coastguard Workerecho "perf record -e cs_etm/@tmc_etr0/u -- <your app>" 30