blob: a72618acb11e65ed5f072f73292d32298b00d5d3 [file] [log] [blame]
# Copyright (c) 2014 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.
AUTHOR = "David Sharp <dhsharp@chromium.org>"
NAME = "hardware_PerfCounterVerification"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "hardware"
TEST_TYPE = "client"
JOB_RETRIES = 2
ATTRIBUTES = "suite:experimental"
BUG_TEMPLATE = {
'owner': 'dhsharp@chromium.org',
'cc': ['cwp-team@google.com']
}
DOC = """
Verify performance counters
Arguments:
events: Events to pass to perf's -e argument. Events are passed in together,
so multiplexing may occur if more than one is specified.
perf_cmd: Which perf command to use to collect events. Supported values are
"stat" and "record -b" (for branch record).
program: Benchmark binary
multiplier: Multiplier on the number of loop iterations passed to the
benchmark binary. i.e., run 1*multiplier, 2*multiplier, etc loop iterations.
"""
job.run_test('hardware_PerfCounterVerification', tag='cycles_instructions',
perf_cmd='stat', events=('cycles', 'instructions'),
program='noploop', multiplier=10000000)
job.run_test('hardware_PerfCounterVerification', tag='LBR',
perf_cmd='record -b', events=('br_inst_retired.all_branches',),
program='noploop', multiplier=10000000)
job.run_test('hardware_PerfCounterVerification', tag='iTLB_misses',
perf_cmd='stat', events=('iTLB-misses','cycles'),
program='iTLB_benchmark', multiplier=100)
job.run_test('hardware_PerfCounterVerification', tag='dTLB_misses',
perf_cmd='stat', events=('dTLB-misses','cycles'),
program='dTLB_benchmark', multiplier=10000)