summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2010-11-09 17:08:28 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2010-11-09 17:08:28 -0500
commit1081b867aec7a716f7a0c60ec5689487d12b4720 (patch)
tree390bbcd3fae58916869630289270643b64e39231
parent5925a6033bef2cec578f5e4c6a0f774a9ff1ba4f (diff)
District10: enable the cycle counter on all processors
Do this by forcing a perf task on each CPU.
-rwxr-xr-xenable-cycle-counter.district1011
1 files changed, 9 insertions, 2 deletions
diff --git a/enable-cycle-counter.district10 b/enable-cycle-counter.district10
index b3f53df..11d1d7e 100755
--- a/enable-cycle-counter.district10
+++ b/enable-cycle-counter.district10
@@ -6,11 +6,18 @@ die() {
6} 6}
7 7
8# if perf is not given in environment, then check path 8# if perf is not given in environment, then check path
9[ -z "$PERF" ] && PERF=`which perf` 9[ -z "$PERF" ] && PERF=`which perf 2> /dev/null`
10# otherwise, assume default location 10# otherwise, assume default location
11[ -z "$PERF" ] && PERF=~/dev/litmus2010/tools/perf/perf 11[ -z "$PERF" ] && PERF=~/dev/litmus2010/tools/perf/perf
12 12
13[ -f "$PERF" ] && [ -x "$PERF" ] || die "Could not find perf tool." 13[ -f "$PERF" ] && [ -x "$PERF" ] || die "Could not find perf tool."
14 14
15# works for sparc64 and Intel x86 if all CPUs are online
16NUM_CPUS=`egrep -c '^processor|online' /proc/cpuinfo`
17
15# Keep cycle counter active for a loooong time. 18# Keep cycle counter active for a loooong time.
16"$PERF" record -o /dev/null sleep $((60 * 60 * 24 * 365)) > /dev/null & 19
20for x in `seq 0 $(($NUM_CPUS - 1))`
21do
22 schedtool -a $x -e "$PERF" record -o /dev/null sleep $((60 * 60 * 24 * 365)) > /dev/null &
23done