[PATCH v1 11/41] perf test: Make the CPUID matching test architecture independent
From: Ian Rogers
Date: Tue Nov 03 2026 - 18:49:37 EST
The arm64 CPUID matching test called strcmp_cpuid_str(), whose arm64
MIDR comparison was only built for arm64. Now that strcmp_cpuid_str()
is given the ELF machine of the CPUIDs and all of its comparisons are
in util/header.c, the test can run on every architecture.
Move the test from arch/arm64/tests to tests, as a "CPUID matching"
suite with an "arm64 MIDR" test case.
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/arch/arm64/include/arch-tests.h | 1 -
tools/perf/arch/arm64/tests/Build | 1 -
tools/perf/arch/arm64/tests/arch-tests.c | 4 ----
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 1 +
tools/perf/{arch/arm64 => }/tests/cpuid-match.c | 17 +++++++++++++----
tools/perf/tests/tests.h | 1 +
7 files changed, 16 insertions(+), 10 deletions(-)
rename tools/perf/{arch/arm64 => }/tests/cpuid-match.c (75%)
diff --git a/tools/perf/arch/arm64/include/arch-tests.h b/tools/perf/arch/arm64/include/arch-tests.h
index 474d7cf5afbd..2b3834a5ddbb 100644
--- a/tools/perf/arch/arm64/include/arch-tests.h
+++ b/tools/perf/arch/arm64/include/arch-tests.h
@@ -4,7 +4,6 @@
struct test_suite;
-int test__cpuid_match(struct test_suite *test, int subtest);
extern struct test_suite *arch_tests[];
#endif
diff --git a/tools/perf/arch/arm64/tests/Build b/tools/perf/arch/arm64/tests/Build
index d44c9de92d42..bd15c6bbc1b2 100644
--- a/tools/perf/arch/arm64/tests/Build
+++ b/tools/perf/arch/arm64/tests/Build
@@ -2,4 +2,3 @@ perf-test-y += regs_load.o
perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
perf-test-y += arch-tests.o
-perf-test-y += cpuid-match.o
diff --git a/tools/perf/arch/arm64/tests/arch-tests.c b/tools/perf/arch/arm64/tests/arch-tests.c
index 74932e72c727..ad16b4f8f63e 100644
--- a/tools/perf/arch/arm64/tests/arch-tests.c
+++ b/tools/perf/arch/arm64/tests/arch-tests.c
@@ -3,13 +3,9 @@
#include "tests/tests.h"
#include "arch-tests.h"
-
-DEFINE_SUITE("arm64 CPUID matching", cpuid_match);
-
struct test_suite *arch_tests[] = {
#ifdef HAVE_DWARF_UNWIND_SUPPORT
&suite__dwarf_unwind,
#endif
- &suite__cpuid_match,
NULL,
};
diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build
index 58858f3d2bf9..4a45b6740050 100644
--- a/tools/perf/tests/Build
+++ b/tools/perf/tests/Build
@@ -44,6 +44,7 @@ perf-test-y += stat.o
perf-test-y += event_update.o
perf-test-y += event-times.o
perf-test-y += expr.o
+perf-test-y += cpuid-match.o
perf-test-y += backward-ring-buffer.o
perf-test-y += sdt.o
perf-test-y += is_printable_array.o
diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
index 0b8897fd42ca..67d162ec9ef2 100644
--- a/tools/perf/tests/builtin-test.c
+++ b/tools/perf/tests/builtin-test.c
@@ -177,6 +177,7 @@ static struct test_suite *generic_tests[] = {
&suite__util,
&suite__subcmd_help,
&suite__kallsyms_split,
+ &suite__cpuid_match,
NULL,
};
diff --git a/tools/perf/arch/arm64/tests/cpuid-match.c b/tools/perf/tests/cpuid-match.c
similarity index 75%
rename from tools/perf/arch/arm64/tests/cpuid-match.c
rename to tools/perf/tests/cpuid-match.c
index b073ac33ea9b..e3d4a349f393 100644
--- a/tools/perf/arch/arm64/tests/cpuid-match.c
+++ b/tools/perf/tests/cpuid-match.c
@@ -2,12 +2,11 @@
#include <linux/compiler.h>
#include <elf.h>
-#include "arch-tests.h"
-#include "tests/tests.h"
+#include "tests.h"
#include "util/header.h"
-int test__cpuid_match(struct test_suite *test __maybe_unused,
- int subtest __maybe_unused)
+static int test__cpuid_match_arm64(struct test_suite *test __maybe_unused,
+ int subtest __maybe_unused)
{
/* midr with no leading zeros matches */
if (strcmp_cpuid_str(EM_AARCH64, "0x410fd0c0", "0x00000000410fd0c0"))
@@ -36,3 +35,13 @@ int test__cpuid_match(struct test_suite *test __maybe_unused,
return 0;
}
+
+static struct test_case tests__cpuid_match[] = {
+ TEST_CASE("arm64 MIDR", cpuid_match_arm64),
+ { .name = NULL, }
+};
+
+struct test_suite suite__cpuid_match = {
+ .desc = "CPUID matching",
+ .test_cases = tests__cpuid_match,
+};
diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h
index 20ae3609892b..0d54d1d5acd2 100644
--- a/tools/perf/tests/tests.h
+++ b/tools/perf/tests/tests.h
@@ -201,6 +201,7 @@ DECLARE_SUITE(util);
DECLARE_SUITE(uncore_event_sorting);
DECLARE_SUITE(subcmd_help);
DECLARE_SUITE(kallsyms_split);
+DECLARE_SUITE(cpuid_match);
/*
* PowerPC and S390 do not support creation of instruction breakpoints using the
--
2.56.0.385.gac671c819a-goog