static void print_pmu_caps(struct feat_fd *ff, FILE *fp)
{
struct perf_env *env = &ff->ph->env;
- struct pmu_caps *pmu_caps;
+ uint16_t e_machine = perf_env__e_machine(env, /*e_flags=*/NULL);
for (int i = 0; i < env->nr_pmus_with_caps; i++) {
- pmu_caps = &env->pmu_caps[i];
+ struct pmu_caps *pmu_caps = &env->pmu_caps[i];
+
__print_pmu_caps(fp, pmu_caps->nr_caps, pmu_caps->caps,
pmu_caps->pmu_name);
}
- if (strcmp(perf_env__arch(env), "x86") == 0 &&
+ if ((e_machine == EM_X86_64 || e_machine == EM_386) &&
perf_env__has_pmu_mapping(env, "ibs_op")) {
char *max_precise = perf_env__find_pmu_cap(env, "cpu", "max_precise");