summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2026-06-02 08:25:05 -0700
committerArnaldo Carvalho de Melo <acme@redhat.com>2026-06-03 16:48:00 -0300
commitd08cb3fb0fbbb759c2e10747fec099290f2108ad (patch)
treeebb168ecf18ae6a7dcb7bb106a09c6d4a7b50ad0
parentdfe48498e6ab1fff4a27600450d073e117b0bd5f (diff)
perf sample-raw: Use perf_env e_machine rather than arch
Use the e_machine rather than the arch to determine S390 and x86 types. Signed-off-by: Ian Rogers <irogers@google.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Honglei Wang <jameshongleiwang@126.com> Cc: Jan Polensky <japo@linux.ibm.com> Cc: Sumanth Korikkar <sumanthk@linux.ibm.com> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/util/sample-raw.c21
-rw-r--r--tools/perf/util/sample-raw.h6
2 files changed, 16 insertions, 11 deletions
diff --git a/tools/perf/util/sample-raw.c b/tools/perf/util/sample-raw.c
index bcf442574d6e..e20b73c0c5bd 100644
--- a/tools/perf/util/sample-raw.c
+++ b/tools/perf/util/sample-raw.c
@@ -1,11 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0 */
+#include "sample-raw.h"
-#include <string.h>
+#include <elf.h>
#include <linux/string.h>
-#include "evlist.h"
+
#include "env.h"
+#include "evlist.h"
#include "header.h"
-#include "sample-raw.h"
#include "session.h"
/*
@@ -14,14 +15,14 @@
*/
void evlist__init_trace_event_sample_raw(struct evlist *evlist, struct perf_env *env)
{
- const char *arch_pf = perf_env__arch(env);
- const char *cpuid = perf_env__cpuid(env);
+ uint16_t e_machine = perf_env__e_machine(env, /*e_flags=*/NULL);
- if (arch_pf && !strcmp("s390", arch_pf))
+ if (e_machine == EM_S390) {
evlist->trace_event_sample_raw = evlist__s390_sample_raw;
- else if (arch_pf && !strcmp("x86", arch_pf) &&
- cpuid && strstarts(cpuid, "AuthenticAMD") &&
- evlist__has_amd_ibs(evlist)) {
- evlist->trace_event_sample_raw = evlist__amd_sample_raw;
+ } else if (e_machine == EM_X86_64 || e_machine == EM_386) {
+ const char *cpuid = perf_env__cpuid(env);
+
+ if (cpuid && strstarts(cpuid, "AuthenticAMD") && evlist__has_amd_ibs(evlist))
+ evlist->trace_event_sample_raw = evlist__amd_sample_raw;
}
}
diff --git a/tools/perf/util/sample-raw.h b/tools/perf/util/sample-raw.h
index 896e9a87e373..c8d38c841c8c 100644
--- a/tools/perf/util/sample-raw.h
+++ b/tools/perf/util/sample-raw.h
@@ -2,7 +2,10 @@
#ifndef __SAMPLE_RAW_H
#define __SAMPLE_RAW_H 1
+#include <stdbool.h>
+
struct evlist;
+struct perf_env;
union perf_event;
struct perf_sample;
@@ -12,4 +15,5 @@ bool evlist__has_amd_ibs(struct evlist *evlist);
void evlist__amd_sample_raw(struct evlist *evlist, union perf_event *event,
struct perf_sample *sample);
void evlist__init_trace_event_sample_raw(struct evlist *evlist, struct perf_env *env);
-#endif /* __PERF_EVLIST_H */
+
+#endif /* __SAMPLE_RAW_H */