mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
perf test: Mask configs with extended types then test
Add helper to test the config of an evsel. Dependent on the type of the evsel, mask the config so that high-bits containing the extended PMU type are ignored. Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Kan Liang <kan.liang@linux.intel.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ahmad Yasin <ahmad.yasin@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Caleb Biggers <caleb.biggers@intel.com> Cc: Edward Baker <edward.baker@intel.com> Cc: Florian Fischer <florian.fischer@muhq.space> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Kajol Jain <kjain@linux.ibm.com> Cc: Kang Minchul <tegongkang@gmail.com> Cc: Leo Yan <leo.yan@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Perry Taylor <perry.taylor@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ravi Bangoria <ravi.bangoria@amd.com> Cc: Rob Herring <robh@kernel.org> Cc: Samantha Alt <samantha.alt@intel.com> Cc: Stephane Eranian <eranian@google.com> Cc: Sumanth Korikkar <sumanthk@linux.ibm.com> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Tiezhu Yang <yangtiezhu@loongson.cn> Cc: Weilin Wang <weilin.wang@intel.com> Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com> Cc: Yang Jihong <yangjihong1@huawei.com> Link: https://lore.kernel.org/r/20230502223851.2234828-13-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
8f8c106886
commit
9854934b05
1 changed files with 88 additions and 109 deletions
|
@ -21,6 +21,21 @@
|
|||
#define PERF_TP_SAMPLE_TYPE (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME | \
|
||||
PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD)
|
||||
|
||||
static bool test_config(const struct evsel *evsel, __u64 expected_config)
|
||||
{
|
||||
__u32 type = evsel->core.attr.type;
|
||||
__u64 config = evsel->core.attr.config;
|
||||
|
||||
if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_HW_CACHE) {
|
||||
/*
|
||||
* HARDWARE and HW_CACHE events encode the PMU's extended type
|
||||
* in the top 32-bits. Mask in order to ignore.
|
||||
*/
|
||||
config &= PERF_HW_EVENT_MASK;
|
||||
}
|
||||
return config == expected_config;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBTRACEEVENT
|
||||
|
||||
#if defined(__s390x__)
|
||||
|
@ -87,7 +102,7 @@ static int test__checkevent_raw(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x1a == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -97,7 +112,7 @@ static int test__checkevent_numeric(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", 1 == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 1 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 1));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -107,8 +122,7 @@ static int test__checkevent_symbolic_name(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -118,8 +132,7 @@ static int test__checkevent_symbolic_name_config(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
/*
|
||||
* The period value gets configured within evlist__config,
|
||||
* while this test executes only parse events method.
|
||||
|
@ -139,8 +152,7 @@ static int test__checkevent_symbolic_alias(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_SOFTWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_SW_PAGE_FAULTS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_SW_PAGE_FAULTS));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -150,7 +162,7 @@ static int test__checkevent_genhw(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HW_CACHE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", (1 << 16) == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 1 << 16));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -160,7 +172,7 @@ static int test__checkevent_breakpoint(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type", (HW_BREAKPOINT_R | HW_BREAKPOINT_W) ==
|
||||
evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len", HW_BREAKPOINT_LEN_4 ==
|
||||
|
@ -174,7 +186,7 @@ static int test__checkevent_breakpoint_x(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type",
|
||||
HW_BREAKPOINT_X == evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len", sizeof(long) == evsel->core.attr.bp_len);
|
||||
|
@ -188,7 +200,7 @@ static int test__checkevent_breakpoint_r(struct evlist *evlist)
|
|||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type",
|
||||
PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type",
|
||||
HW_BREAKPOINT_R == evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len",
|
||||
|
@ -203,7 +215,7 @@ static int test__checkevent_breakpoint_w(struct evlist *evlist)
|
|||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type",
|
||||
PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type",
|
||||
HW_BREAKPOINT_W == evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len",
|
||||
|
@ -218,7 +230,7 @@ static int test__checkevent_breakpoint_rw(struct evlist *evlist)
|
|||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type",
|
||||
PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type",
|
||||
(HW_BREAKPOINT_R|HW_BREAKPOINT_W) == evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len",
|
||||
|
@ -447,7 +459,7 @@ static int test__checkevent_pmu(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 10 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 10));
|
||||
TEST_ASSERT_VAL("wrong config1", 1 == evsel->core.attr.config1);
|
||||
TEST_ASSERT_VAL("wrong config2", 3 == evsel->core.attr.config2);
|
||||
TEST_ASSERT_VAL("wrong config3", 0 == evsel->core.attr.config3);
|
||||
|
@ -469,7 +481,7 @@ static int test__checkevent_list(struct evlist *evlist)
|
|||
|
||||
/* r1 */
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 1 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 1));
|
||||
TEST_ASSERT_VAL("wrong config1", 0 == evsel->core.attr.config1);
|
||||
TEST_ASSERT_VAL("wrong config2", 0 == evsel->core.attr.config2);
|
||||
TEST_ASSERT_VAL("wrong config3", 0 == evsel->core.attr.config3);
|
||||
|
@ -492,7 +504,7 @@ static int test__checkevent_list(struct evlist *evlist)
|
|||
/* 1:1:hp */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", 1 == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 1 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 1));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -509,14 +521,14 @@ static int test__checkevent_pmu_name(struct evlist *evlist)
|
|||
/* cpu/config=1,name=krava/u */
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 1 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 1));
|
||||
TEST_ASSERT_VAL("wrong name", !strcmp(evsel__name(evsel), "krava"));
|
||||
|
||||
/* cpu/config=2/u" */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 2 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 2));
|
||||
TEST_ASSERT_VAL("wrong name",
|
||||
!strcmp(evsel__name(evsel), "cpu/config=2/u"));
|
||||
|
||||
|
@ -530,7 +542,7 @@ static int test__checkevent_pmu_partial_time_callgraph(struct evlist *evlist)
|
|||
/* cpu/config=1,call-graph=fp,time,period=100000/ */
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 1 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 1));
|
||||
/*
|
||||
* The period, time and callgraph value gets configured within evlist__config,
|
||||
* while this test executes only parse events method.
|
||||
|
@ -542,7 +554,7 @@ static int test__checkevent_pmu_partial_time_callgraph(struct evlist *evlist)
|
|||
/* cpu/config=2,call-graph=no,time=0,period=2000/ */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 2 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 2));
|
||||
/*
|
||||
* The period, time and callgraph value gets configured within evlist__config,
|
||||
* while this test executes only parse events method.
|
||||
|
@ -696,8 +708,7 @@ static int test__group1(struct evlist *evlist)
|
|||
/* instructions:k */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -712,8 +723,7 @@ static int test__group1(struct evlist *evlist)
|
|||
/* cycles:upp */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -738,8 +748,7 @@ static int test__group2(struct evlist *evlist)
|
|||
/* faults + :ku modifier */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_SOFTWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_SW_PAGE_FAULTS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_SW_PAGE_FAULTS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -754,8 +763,7 @@ static int test__group2(struct evlist *evlist)
|
|||
/* cache-references + :u modifier */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_REFERENCES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_REFERENCES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -769,8 +777,7 @@ static int test__group2(struct evlist *evlist)
|
|||
/* cycles:k */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -813,8 +820,7 @@ static int test__group3(struct evlist *evlist __maybe_unused)
|
|||
/* group1 cycles:kppp */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -830,8 +836,7 @@ static int test__group3(struct evlist *evlist __maybe_unused)
|
|||
/* group2 cycles + G modifier */
|
||||
evsel = leader = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -848,7 +853,7 @@ static int test__group3(struct evlist *evlist __maybe_unused)
|
|||
/* group2 1:3 + G modifier */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", 1 == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 3 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 3));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -862,8 +867,7 @@ static int test__group3(struct evlist *evlist __maybe_unused)
|
|||
/* instructions:u */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -887,8 +891,7 @@ static int test__group4(struct evlist *evlist __maybe_unused)
|
|||
/* cycles:u + p */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -905,8 +908,7 @@ static int test__group4(struct evlist *evlist __maybe_unused)
|
|||
/* instructions:kp + p */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -931,8 +933,7 @@ static int test__group5(struct evlist *evlist __maybe_unused)
|
|||
/* cycles + G */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -948,8 +949,7 @@ static int test__group5(struct evlist *evlist __maybe_unused)
|
|||
/* instructions + G */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -963,8 +963,7 @@ static int test__group5(struct evlist *evlist __maybe_unused)
|
|||
/* cycles:G */
|
||||
evsel = leader = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -980,8 +979,7 @@ static int test__group5(struct evlist *evlist __maybe_unused)
|
|||
/* instructions:G */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -994,8 +992,7 @@ static int test__group5(struct evlist *evlist __maybe_unused)
|
|||
/* cycles */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1017,8 +1014,7 @@ static int test__group_gh1(struct evlist *evlist)
|
|||
/* cycles + :H group modifier */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1033,8 +1029,7 @@ static int test__group_gh1(struct evlist *evlist)
|
|||
/* cache-misses:G + :H group modifier */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1057,8 +1052,7 @@ static int test__group_gh2(struct evlist *evlist)
|
|||
/* cycles + :G group modifier */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1073,8 +1067,7 @@ static int test__group_gh2(struct evlist *evlist)
|
|||
/* cache-misses:H + :G group modifier */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1097,8 +1090,7 @@ static int test__group_gh3(struct evlist *evlist)
|
|||
/* cycles:G + :u group modifier */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -1113,8 +1105,7 @@ static int test__group_gh3(struct evlist *evlist)
|
|||
/* cache-misses:H + :u group modifier */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -1137,8 +1128,7 @@ static int test__group_gh4(struct evlist *evlist)
|
|||
/* cycles:G + :uG group modifier */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -1153,8 +1143,7 @@ static int test__group_gh4(struct evlist *evlist)
|
|||
/* cache-misses:H + :uG group modifier */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -1176,8 +1165,7 @@ static int test__leader_sample1(struct evlist *evlist)
|
|||
/* cycles - sampling group leader */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1191,8 +1179,7 @@ static int test__leader_sample1(struct evlist *evlist)
|
|||
/* cache-misses - not sampling */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1205,8 +1192,7 @@ static int test__leader_sample1(struct evlist *evlist)
|
|||
/* branch-misses - not sampling */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_BRANCH_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_BRANCH_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", !evsel->core.attr.exclude_hv);
|
||||
|
@ -1229,8 +1215,7 @@ static int test__leader_sample2(struct evlist *evlist __maybe_unused)
|
|||
/* instructions - sampling group leader */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_INSTRUCTIONS == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -1244,8 +1229,7 @@ static int test__leader_sample2(struct evlist *evlist __maybe_unused)
|
|||
/* branch-misses - not sampling */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_BRANCH_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_BRANCH_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
TEST_ASSERT_VAL("wrong exclude_hv", evsel->core.attr.exclude_hv);
|
||||
|
@ -1281,8 +1265,7 @@ static int test__pinned_group(struct evlist *evlist)
|
|||
/* cycles - group leader */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
TEST_ASSERT_VAL("wrong pinned", evsel->core.attr.pinned);
|
||||
|
@ -1290,14 +1273,12 @@ static int test__pinned_group(struct evlist *evlist)
|
|||
/* cache-misses - can not be pinned, but will go on with the leader */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong pinned", !evsel->core.attr.pinned);
|
||||
|
||||
/* branch-misses - ditto */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_BRANCH_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_BRANCH_MISSES));
|
||||
TEST_ASSERT_VAL("wrong pinned", !evsel->core.attr.pinned);
|
||||
|
||||
return TEST_OK;
|
||||
|
@ -1325,8 +1306,7 @@ static int test__exclusive_group(struct evlist *evlist)
|
|||
/* cycles - group leader */
|
||||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CPU_CYCLES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
TEST_ASSERT_VAL("wrong exclusive", evsel->core.attr.exclusive);
|
||||
|
@ -1334,14 +1314,12 @@ static int test__exclusive_group(struct evlist *evlist)
|
|||
/* cache-misses - can not be pinned, but will go on with the leader */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_CACHE_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CACHE_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclusive", !evsel->core.attr.exclusive);
|
||||
|
||||
/* branch-misses - ditto */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_HW_BRANCH_MISSES == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_BRANCH_MISSES));
|
||||
TEST_ASSERT_VAL("wrong exclusive", !evsel->core.attr.exclusive);
|
||||
|
||||
return TEST_OK;
|
||||
|
@ -1352,7 +1330,7 @@ static int test__checkevent_breakpoint_len(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type", (HW_BREAKPOINT_R | HW_BREAKPOINT_W) ==
|
||||
evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len", HW_BREAKPOINT_LEN_1 ==
|
||||
|
@ -1367,7 +1345,7 @@ static int test__checkevent_breakpoint_len_w(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_BREAKPOINT == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0));
|
||||
TEST_ASSERT_VAL("wrong bp_type", HW_BREAKPOINT_W ==
|
||||
evsel->core.attr.bp_type);
|
||||
TEST_ASSERT_VAL("wrong bp_len", HW_BREAKPOINT_LEN_2 ==
|
||||
|
@ -1395,8 +1373,7 @@ static int test__checkevent_precise_max_modifier(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_SOFTWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config",
|
||||
PERF_COUNT_SW_TASK_CLOCK == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_SW_TASK_CLOCK));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -1454,7 +1431,9 @@ static int test__checkevent_complex_name(struct evlist *evlist)
|
|||
{
|
||||
struct evsel *evsel = evlist__first(evlist);
|
||||
|
||||
TEST_ASSERT_VAL("wrong complex name parsing", evsel__name_is(evsel, "COMPLEX_CYCLES_NAME:orig=cycles,desc=chip-clock-ticks"));
|
||||
TEST_ASSERT_VAL("wrong complex name parsing",
|
||||
evsel__name_is(evsel,
|
||||
"COMPLEX_CYCLES_NAME:orig=cycles,desc=chip-clock-ticks"));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -1464,7 +1443,7 @@ static int test__checkevent_raw_pmu(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_SOFTWARE == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x1a == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -1473,7 +1452,7 @@ static int test__sym_event_slash(struct evlist *evlist)
|
|||
struct evsel *evsel = evlist__first(evlist);
|
||||
|
||||
TEST_ASSERT_VAL("wrong type", evsel->core.attr.type == PERF_TYPE_HARDWARE);
|
||||
TEST_ASSERT_VAL("wrong config", evsel->core.attr.config == PERF_COUNT_HW_CPU_CYCLES);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
return TEST_OK;
|
||||
}
|
||||
|
@ -1483,7 +1462,7 @@ static int test__sym_event_dc(struct evlist *evlist)
|
|||
struct evsel *evsel = evlist__first(evlist);
|
||||
|
||||
TEST_ASSERT_VAL("wrong type", evsel->core.attr.type == PERF_TYPE_HARDWARE);
|
||||
TEST_ASSERT_VAL("wrong config", evsel->core.attr.config == PERF_COUNT_HW_CPU_CYCLES);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
return TEST_OK;
|
||||
}
|
||||
|
@ -1550,7 +1529,7 @@ static int test__hybrid_hw_event_with_pmu(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x3c == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x3c));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -1561,12 +1540,12 @@ static int test__hybrid_hw_group_event(struct evlist *evlist)
|
|||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x3c == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x3c));
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0xc0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0xc0));
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
@ -1582,7 +1561,7 @@ static int test__hybrid_sw_hw_group_event(struct evlist *evlist)
|
|||
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x3c == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x3c));
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
@ -1594,7 +1573,7 @@ static int test__hybrid_hw_sw_group_event(struct evlist *evlist)
|
|||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x3c == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x3c));
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
|
||||
evsel = evsel__next(evsel);
|
||||
|
@ -1610,14 +1589,14 @@ static int test__hybrid_group_modifier1(struct evlist *evlist)
|
|||
evsel = leader = evlist__first(evlist);
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x3c == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x3c));
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->core.attr.exclude_kernel);
|
||||
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0xc0 == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0xc0));
|
||||
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
|
||||
TEST_ASSERT_VAL("wrong exclude_user", !evsel->core.attr.exclude_user);
|
||||
TEST_ASSERT_VAL("wrong exclude_kernel", evsel->core.attr.exclude_kernel);
|
||||
|
@ -1631,17 +1610,17 @@ static int test__hybrid_raw1(struct evlist *evlist)
|
|||
if (!perf_pmu__hybrid_mounted("cpu_atom")) {
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x1a == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x1a == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
|
||||
|
||||
/* The type of second event is randome value */
|
||||
evsel = evsel__next(evsel);
|
||||
TEST_ASSERT_VAL("wrong config", 0x1a == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
@ -1651,7 +1630,7 @@ static int test__hybrid_raw2(struct evlist *evlist)
|
|||
|
||||
TEST_ASSERT_VAL("wrong number of entries", 1 == evlist->core.nr_entries);
|
||||
TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->core.attr.type);
|
||||
TEST_ASSERT_VAL("wrong config", 0x1a == evsel->core.attr.config);
|
||||
TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
|
||||
return TEST_OK;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue