mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
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>
This commit is contained in:
parent
dfe48498e6
commit
d08cb3fb0f
|
|
@ -1,11 +1,12 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#include <string.h>
|
||||
#include <linux/string.h>
|
||||
#include "evlist.h"
|
||||
#include "env.h"
|
||||
#include "header.h"
|
||||
#include "sample-raw.h"
|
||||
|
||||
#include <elf.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include "env.h"
|
||||
#include "evlist.h"
|
||||
#include "header.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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user