mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
IBS pmu can be invoked via fixed set of core pmu events with 'precise_ip' set to 1. Add a simple event open test for all these events. Without kernel fix: $ sudo ./perf test -vv 76 76: AMD IBS via core pmu : --- start --- test child forked, pid 6553 Using CPUID AuthenticAMD-25-1-1 type: 0x0, config: 0x0, fd: 3 - Pass type: 0x0, config: 0x1, fd: -1 - Pass type: 0x4, config: 0x76, fd: -1 - Fail type: 0x4, config: 0xc1, fd: -1 - Fail type: 0x4, config: 0x12, fd: -1 - Pass test child finished with -1 ---- end ---- AMD IBS via core pmu: FAILED! With kernel fix: $ sudo ./perf test -vv 76 76: AMD IBS via core pmu : --- start --- test child forked, pid 7526 Using CPUID AuthenticAMD-25-1-1 type: 0x0, config: 0x0, fd: 3 - Pass type: 0x0, config: 0x1, fd: -1 - Pass type: 0x4, config: 0x76, fd: 3 - Pass type: 0x4, config: 0xc1, fd: 3 - Pass type: 0x4, config: 0x12, fd: -1 - Pass test child finished with 0 ---- end ---- AMD IBS via core pmu: Ok Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20230504110003.2548-5-ravi.bangoria@amd.com
42 lines
993 B
C
42 lines
993 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
#include <string.h>
|
|
#include "tests/tests.h"
|
|
#include "arch-tests.h"
|
|
|
|
#ifdef HAVE_AUXTRACE_SUPPORT
|
|
DEFINE_SUITE("x86 instruction decoder - new instructions", insn_x86);
|
|
|
|
static struct test_case intel_pt_tests[] = {
|
|
TEST_CASE("Intel PT packet decoder", intel_pt_pkt_decoder),
|
|
TEST_CASE("Intel PT hybrid CPU compatibility", intel_pt_hybrid_compat),
|
|
{ .name = NULL, }
|
|
};
|
|
|
|
struct test_suite suite__intel_pt = {
|
|
.desc = "Intel PT",
|
|
.test_cases = intel_pt_tests,
|
|
};
|
|
|
|
#endif
|
|
#if defined(__x86_64__)
|
|
DEFINE_SUITE("x86 bp modify", bp_modify);
|
|
#endif
|
|
DEFINE_SUITE("x86 Sample parsing", x86_sample_parsing);
|
|
DEFINE_SUITE("AMD IBS via core pmu", amd_ibs_via_core_pmu);
|
|
|
|
struct test_suite *arch_tests[] = {
|
|
#ifdef HAVE_DWARF_UNWIND_SUPPORT
|
|
&suite__dwarf_unwind,
|
|
#endif
|
|
#ifdef HAVE_AUXTRACE_SUPPORT
|
|
&suite__insn_x86,
|
|
&suite__intel_pt,
|
|
#endif
|
|
#if defined(__x86_64__)
|
|
&suite__bp_modify,
|
|
#endif
|
|
&suite__x86_sample_parsing,
|
|
&suite__amd_ibs_via_core_pmu,
|
|
NULL,
|
|
};
|