perf x86 test: Update hybrid expectations
authorIan Rogers <irogers@google.com>
Wed, 3 Jan 2024 17:01:58 +0000 (09:01 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 3 Jan 2024 20:55:01 +0000 (17:55 -0300)
The legacy events cpu-cycles and instructions have sysfs event
equivalents on x86 (see /sys/devices/cpu_core/events).

As sysfs/JSON events are now higher in priority than legacy events this
causes the hybrid test expectations not to be met.

To fix this switch to legacy events that don't have sysfs versions,
namely cpu-cycles becomes cycles and instructions becomes branches.

Fixes: a24d9d9dc096fc0d ("perf parse-events: Make legacy events lower priority than sysfs/JSON")
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Closes: https://lore.kernel.org/lkml/ZYbm5L7tw7bdpDpE@kernel.org/
Link: https://lore.kernel.org/r/20240103170159.1435753-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/arch/x86/tests/hybrid.c

index eb152770f148562b8032cbd7a14c1e153e273d93..05a5f81e81671782b0b70f07b354b0d9f8894fd6 100644 (file)
@@ -47,7 +47,7 @@ static int test__hybrid_hw_group_event(struct evlist *evlist)
        evsel = evsel__next(evsel);
        TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
        TEST_ASSERT_VAL("wrong hybrid type", test_hybrid_type(evsel, PERF_TYPE_RAW));
-       TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
+       TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_BRANCH_INSTRUCTIONS));
        TEST_ASSERT_VAL("wrong leader", evsel__has_leader(evsel, leader));
        return TEST_OK;
 }
@@ -102,7 +102,7 @@ static int test__hybrid_group_modifier1(struct evlist *evlist)
        evsel = evsel__next(evsel);
        TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type);
        TEST_ASSERT_VAL("wrong hybrid type", test_hybrid_type(evsel, PERF_TYPE_RAW));
-       TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_INSTRUCTIONS));
+       TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_BRANCH_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);
@@ -171,27 +171,27 @@ struct evlist_test {
 
 static const struct evlist_test test__hybrid_events[] = {
        {
-               .name  = "cpu_core/cpu-cycles/",
+               .name  = "cpu_core/cycles/",
                .check = test__hybrid_hw_event_with_pmu,
                /* 0 */
        },
        {
-               .name  = "{cpu_core/cpu-cycles/,cpu_core/instructions/}",
+               .name  = "{cpu_core/cycles/,cpu_core/branches/}",
                .check = test__hybrid_hw_group_event,
                /* 1 */
        },
        {
-               .name  = "{cpu-clock,cpu_core/cpu-cycles/}",
+               .name  = "{cpu-clock,cpu_core/cycles/}",
                .check = test__hybrid_sw_hw_group_event,
                /* 2 */
        },
        {
-               .name  = "{cpu_core/cpu-cycles/,cpu-clock}",
+               .name  = "{cpu_core/cycles/,cpu-clock}",
                .check = test__hybrid_hw_sw_group_event,
                /* 3 */
        },
        {
-               .name  = "{cpu_core/cpu-cycles/k,cpu_core/instructions/u}",
+               .name  = "{cpu_core/cycles/k,cpu_core/branches/u}",
                .check = test__hybrid_group_modifier1,
                /* 4 */
        },