blob: a7c26c3e05218be31bca9d649f497262716a4628 [file] [log] [blame]
// Copyright (c) 2013 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.
#ifndef CHROMIUMOS_WIDE_PROFILING_PERF_TEST_FILES_H_
#define CHROMIUMOS_WIDE_PROFILING_PERF_TEST_FILES_H_
// TODO(sque): Re-enable callgraph testing when longer-term
// changes to quipper are done.
// #define TEST_CALLGRAPH
namespace perf_test_files {
// The following perf data contains the following event types, as passed to
// perf record via the -e option:
// - cycles
// - instructions
// - cache-references
// - cache-misses
// - branches
// - branch-misses
const char* kPerfDataFiles[] = {
// Obtained with "perf record -- echo > /dev/null"
"perf.data.singleprocess",
// Obtained with "perf record -a -- sleep $N", for N in {0, 1, 5}.
"perf.data.systemwide.0",
"perf.data.systemwide.1",
"perf.data.systemwide.5",
// Obtained with "perf record -a -- sleep $N", for N in {0, 1, 5}.
// While in the background, this loop is running:
// while true; do ls > /dev/null; done
"perf.data.busy.0",
"perf.data.busy.1",
"perf.data.busy.5",
// Obtained with "perf record -a -- sleep 2"
// While in the background, this loop is running:
// while true; do restart powerd; sleep .2; done
"perf.data.forkexit",
#ifdef TEST_CALLGRAPH
// Obtained with "perf record -a -g -- sleep 2"
"perf.data.callgraph",
#endif
// Obtained with "perf record -a -b -- sleep 2"
"perf.data.branch",
#ifdef TEST_CALLGRAPH
// Obtained with "perf record -a -g -b -- sleep 2"
"perf.data.callgraph_and_branch",
#endif
// Obtained with "perf record -a -R -- sleep 2"
"perf.data.raw",
#ifdef TEST_CALLGRAPH
// Obtained with "perf record -a -R -g -b -- sleep 2"
"perf.data.raw_callgraph_branch",
#endif
// Data from other architectures.
"perf.data.i686", // 32-bit x86
"perf.data.armv7", // ARM v7
"perf.data.armv7.perf_3.14", // ARM v7 obtained using perf 3.14.
// Same as above, obtained from a system running kernel-next.
"perf.data.singleprocess.next",
"perf.data.systemwide.0.next",
"perf.data.systemwide.1.next",
"perf.data.systemwide.5.next",
"perf.data.busy.0.next",
"perf.data.busy.1.next",
"perf.data.busy.5.next",
"perf.data.forkexit.next",
#ifdef TEST_CALLGRAPH
"perf.data.callgraph.next",
#endif
"perf.data.branch.next",
#ifdef TEST_CALLGRAPH
"perf.data.callgraph_and_branch.next",
#endif
// Obtained from a system that uses NUMA topology.
"perf.data.numatopology",
// Perf data that contains hardware and software events.
// Command:
// perf record -a -c 1000000 -e cycles,branch-misses,cpu-clock -- sleep 2
// HW events are cycles and branch-misses, SW event is cpu-clock.
// This also tests non-consecutive event types.
"perf.data.hw_and_sw",
// This test first mmap()s a DSO, then fork()s to copy the mapping to the
// child and then modifies the mapping by mmap()ing a DSO on top of the old
// one. It then records SAMPLEs events in the child. It ensures the SAMPLEs in
// the child are attributed to the first DSO that was mmap()ed, not the second
// one.
"perf.data.remmap",
// This is sample with a frequency higher than the max frequency, so it has
// throttle and unthrottle events.
"perf.data.throttle.next",
};
const char* kPerfPipedDataFiles[] = {
"perf.data.piped.host",
"perf.data.piped.target",
"perf.data.piped.target.throttled",
// From system running kernel-next.
"perf.data.piped.target.next",
// Piped data that contains hardware and software events.
// Command:
// perf record -a -c 1000000 -e cycles,branch-misses,cpu-clock -o -
// -- sleep 2
// HW events are cycles and branch-misses, SW event is cpu-clock.
"perf.data.piped.hw_and_sw",
// Piped data with extra data at end.
"perf.data.piped.extrabyte",
"perf.data.piped.extradata",
};
const char* kCorruptedPerfPipedDataFiles[] = {
// Has a SAMPLE event with size set to zero. Don't go into an infinite loop!
"perf.data.piped.corrupted.zero_size_sample",
};
const char* kPerfDataProtoFiles[] = {
"perf.callgraph.pb_text",
};
} // namespace perf_test_files
#endif // CHROMIUMOS_WIDE_PROFILING_PERF_TEST_FILES_H_