From: Ian Rogers <irogers@google.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
Kan Liang <kan.liang@linux.intel.com>,
Ahmad Yasin <ahmad.yasin@intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Stephane Eranian <eranian@google.com>,
Andi Kleen <ak@linux.intel.com>,
Perry Taylor <perry.taylor@intel.com>,
Samantha Alt <samantha.alt@intel.com>,
Caleb Biggers <caleb.biggers@intel.com>,
Weilin Wang <weilin.wang@intel.com>,
Edward Baker <edward.baker@intel.com>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Florian Fischer <florian.fischer@muhq.space>,
Rob Herring <robh@kernel.org>,
Zhengjun Xing <zhengjun.xing@linux.intel.com>,
John Garry <john.g.garry@oracle.com>,
Kajol Jain <kjain@linux.ibm.com>,
Sumanth Korikkar <sumanthk@linux.ibm.com>,
Thomas Richter <tmricht@linux.ibm.com>,
Tiezhu Yang <yangtiezhu@loongson.cn>,
Ravi Bangoria <ravi.bangoria@amd.com>,
Leo Yan <leo.yan@linaro.org>,
Yang Jihong <yangjihong1@huawei.com>,
James Clark <james.clark@arm.com>,
Suzuki Poulouse <suzuki.poulose@arm.com>,
Kang Minchul <tegongkang@gmail.com>,
Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Ian Rogers <irogers@google.com>
Subject: [PATCH v2 21/43] perf test x86 hybrid: Update test expectations
Date: Fri, 28 Apr 2023 00:37:47 -0700 [thread overview]
Message-ID: <20230428073809.1803624-22-irogers@google.com> (raw)
In-Reply-To: <20230428073809.1803624-1-irogers@google.com>
Don't assume evlist order. Switch to a loop rather than depend on
evlist order for raw events test.
Update hybrid event expectations. Previous values were based on
parsing legacy hardware events from sysfs, update to the correct PMU
specific legacy values.
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/perf/arch/x86/tests/hybrid.c | 54 ++++++++++++++----------------
1 file changed, 26 insertions(+), 28 deletions(-)
diff --git a/tools/perf/arch/x86/tests/hybrid.c b/tools/perf/arch/x86/tests/hybrid.c
index 0f99cfd116ee..d2a173ba3db9 100644
--- a/tools/perf/arch/x86/tests/hybrid.c
+++ b/tools/perf/arch/x86/tests/hybrid.c
@@ -11,13 +11,18 @@ static bool test_config(const struct evsel *evsel, __u64 expected_config)
return (evsel->core.attr.config & PERF_HW_EVENT_MASK) == expected_config;
}
+static bool test_perf_config(const struct perf_evsel *evsel, __u64 expected_config)
+{
+ return (evsel->attr.config & PERF_HW_EVENT_MASK) == expected_config;
+}
+
static int test__hybrid_hw_event_with_pmu(struct evlist *evlist)
{
struct evsel *evsel = evlist__first(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", test_config(evsel, 0x3c));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
return TEST_OK;
}
@@ -27,13 +32,13 @@ 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", test_config(evsel, 0x3c));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
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", test_config(evsel, 0xc0));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
return TEST_OK;
}
@@ -48,8 +53,8 @@ static int test__hybrid_sw_hw_group_event(struct evlist *evlist)
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", test_config(evsel, 0x3c));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
return TEST_OK;
}
@@ -60,8 +65,8 @@ 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", test_config(evsel, 0x3c));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
evsel = evsel__next(evsel);
@@ -76,15 +81,15 @@ 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", test_config(evsel, 0x3c));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
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", test_config(evsel, 0xc0));
+ TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
+ TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
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);
@@ -93,22 +98,15 @@ static int test__hybrid_group_modifier1(struct evlist *evlist)
static int test__hybrid_raw1(struct evlist *evlist)
{
- struct evsel *evsel = evlist__first(evlist);
+ struct perf_evsel *evsel;
- 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", 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", test_config(evsel, 0x1a));
+ perf_evlist__for_each_evsel(&evlist->core, evsel) {
+ struct perf_pmu *pmu = perf_pmu__find_by_type(evsel->attr.type);
- /* The type of second event is randome value */
- evsel = evsel__next(evsel);
- TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a));
+ TEST_ASSERT_VAL("missing pmu", pmu);
+ TEST_ASSERT_VAL("unexpected pmu", !strncmp(pmu->name, "cpu_", 4));
+ TEST_ASSERT_VAL("wrong config", test_perf_config(evsel, 0x1a));
+ }
return TEST_OK;
}
--
2.40.1.495.gc816e09b53d-goog
next prev parent reply other threads:[~2023-04-28 7:43 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-28 7:37 [PATCH v2 00/43] Fix perf on Intel hybrid CPUs Ian Rogers
2023-04-28 7:37 ` [PATCH v2 01/43] perf stat: Disable TopdownL1 on hybrid Ian Rogers
2023-04-28 13:31 ` Liang, Kan
2023-04-29 1:17 ` Arnaldo Carvalho de Melo
2023-04-28 7:37 ` [PATCH v2 02/43] perf stat: Introduce skippable evsels Ian Rogers
2023-04-28 13:30 ` Liang, Kan
2023-04-28 7:37 ` [PATCH v2 04/43] perf vendor events intel: Add alderlake metric constraints Ian Rogers
2023-04-28 7:37 ` [PATCH v2 05/43] perf vendor events intel: Add icelake " Ian Rogers
2023-04-28 7:37 ` [PATCH v2 06/43] perf vendor events intel: Add icelakex " Ian Rogers
2023-04-28 7:37 ` [PATCH v2 07/43] perf vendor events intel: Add sapphirerapids " Ian Rogers
2023-04-28 7:37 ` [PATCH v2 08/43] perf vendor events intel: Add tigerlake " Ian Rogers
2023-04-28 7:37 ` [PATCH v2 09/43] perf stat: Avoid segv on counter->name Ian Rogers
2023-04-29 1:20 ` Arnaldo Carvalho de Melo
2023-04-28 7:37 ` [PATCH v2 10/43] perf test: Test more sysfs events Ian Rogers
2023-04-28 7:37 ` [PATCH v2 11/43] perf test: Use valid for PMU tests Ian Rogers
2023-04-28 7:37 ` [PATCH v2 12/43] perf test: Mask config then test Ian Rogers
2023-04-28 7:37 ` [PATCH v2 13/43] perf test: Test more with config_cache Ian Rogers
2023-04-28 7:37 ` [PATCH v2 14/43] perf test: Roundtrip name, don't assume 1 event per name Ian Rogers
2023-04-28 7:37 ` [PATCH v2 15/43] perf parse-events: Set attr.type to PMU type early Ian Rogers
2023-04-28 7:37 ` [PATCH v2 16/43] perf parse-events: Set pmu_name whenever a pmu is given Ian Rogers
2023-04-28 7:37 ` [PATCH v2 17/43] perf print-events: Avoid unnecessary strlist Ian Rogers
2023-04-28 7:37 ` [PATCH v2 18/43] perf parse-events: Avoid scanning PMUs before parsing Ian Rogers
2023-04-28 7:37 ` [PATCH v2 19/43] perf evsel: Modify group pmu name for software events Ian Rogers
2023-04-28 7:37 ` [PATCH v2 20/43] perf test: Move x86 hybrid tests to arch/x86 Ian Rogers
2023-04-28 13:35 ` Liang, Kan
2023-04-28 13:46 ` Liang, Kan
2023-04-28 7:37 ` Ian Rogers [this message]
2023-04-28 13:57 ` [PATCH v2 21/43] perf test x86 hybrid: Update test expectations Liang, Kan
2023-04-28 7:37 ` [PATCH v2 22/43] perf parse-events: Support PMUs for legacy cache events Ian Rogers
2023-04-28 7:37 ` [PATCH v2 23/43] perf parse-events: Wildcard " Ian Rogers
2023-04-28 7:37 ` [PATCH v2 24/43] perf print-events: Print legacy cache events for each PMU Ian Rogers
2023-04-28 7:37 ` [PATCH v2 25/43] perf parse-events: Support wildcards on raw events Ian Rogers
2023-04-28 7:37 ` [PATCH v2 26/43] perf parse-events: Remove now unused hybrid logic Ian Rogers
2023-04-28 7:37 ` [PATCH v2 27/43] perf parse-events: Minor type safety cleanup Ian Rogers
2023-04-28 7:37 ` [PATCH v2 28/43] perf parse-events: Add pmu filter Ian Rogers
2023-04-28 7:37 ` [PATCH v2 29/43] perf stat: Make cputype filter generic Ian Rogers
2023-04-28 7:37 ` [PATCH v2 30/43] perf test: Add cputype testing to perf stat Ian Rogers
2023-04-28 7:37 ` [PATCH v2 31/43] perf test: Fix parse-events tests for >1 core PMU Ian Rogers
2023-04-28 7:37 ` [PATCH v2 32/43] perf parse-events: Support hardware events as terms Ian Rogers
2023-04-28 7:37 ` [PATCH v2 33/43] perf parse-events: Avoid error when assigning a term Ian Rogers
2023-04-28 7:38 ` [PATCH v2 34/43] perf parse-events: Avoid error when assigning a legacy cache term Ian Rogers
2023-04-28 7:38 ` [PATCH v2 35/43] perf parse-events: Don't auto merge hybrid wildcard events Ian Rogers
2023-04-28 7:38 ` [PATCH v2 36/43] perf parse-events: Don't reorder atom cpu events Ian Rogers
2023-04-28 7:38 ` [PATCH v2 37/43] perf metrics: Be PMU specific for referenced metrics Ian Rogers
2023-04-28 7:38 ` [PATCH v2 38/43] perf stat: Command line PMU metric filtering Ian Rogers
2023-04-28 7:38 ` [PATCH v2 39/43] perf vendor events intel: Correct alderlake metrics Ian Rogers
2023-04-28 7:38 ` [PATCH v2 40/43] perf jevents: Don't rewrite metrics across PMUs Ian Rogers
2023-04-28 7:38 ` [PATCH v2 41/43] perf metrics: Be PMU specific in event match Ian Rogers
2023-04-28 7:38 ` [PATCH v2 42/43] perf stat: Don't disable TopdownL1 metric on hybrid Ian Rogers
2023-04-28 7:38 ` [PATCH v2 43/43] perf parse-events: Reduce scope of is_event_supported Ian Rogers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230428073809.1803624-22-irogers@google.com \
--to=irogers@google.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ahmad.yasin@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=caleb.biggers@intel.com \
--cc=edward.baker@intel.com \
--cc=eranian@google.com \
--cc=florian.fischer@muhq.space \
--cc=james.clark@arm.com \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=kjain@linux.ibm.com \
--cc=leo.yan@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=perry.taylor@intel.com \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@amd.com \
--cc=robh@kernel.org \
--cc=samantha.alt@intel.com \
--cc=sumanthk@linux.ibm.com \
--cc=suzuki.poulose@arm.com \
--cc=tegongkang@gmail.com \
--cc=tmricht@linux.ibm.com \
--cc=weilin.wang@intel.com \
--cc=yangjihong1@huawei.com \
--cc=yangtiezhu@loongson.cn \
--cc=zhengjun.xing@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).