From: Shunsuke Nakamura <nakamura.shun@xxxxxxxxxxx> Move evsel::open_flags to perf_evsel::open_flags, so we can move the open_flags interface to libperf. Signed-off-by: Shunsuke Nakamura <nakamura.shun@xxxxxxxxxxx> Signed-off-by: Charlie Jenkins <charlie@xxxxxxxxxxxx> --- tools/lib/perf/include/internal/evsel.h | 2 ++ tools/perf/util/evsel.c | 16 +++++++++------- tools/perf/util/evsel.h | 1 - 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/tools/lib/perf/include/internal/evsel.h b/tools/lib/perf/include/internal/evsel.h index 5cd220a61962..1d0d0406793a 100644 --- a/tools/lib/perf/include/internal/evsel.h +++ b/tools/lib/perf/include/internal/evsel.h @@ -75,6 +75,8 @@ struct perf_evsel { /** Is the PMU for the event a core one? Effects the handling of own_cpus. */ bool is_pmu_core; int idx; + + unsigned long open_flags; }; void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr, diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 4f818ab6b662..65f0f83ada6d 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1829,9 +1829,9 @@ static int __evsel__prepare_open(struct evsel *evsel, struct perf_cpu_map *cpus, perf_evsel__alloc_fd(&evsel->core, perf_cpu_map__nr(cpus), nthreads) < 0) return -ENOMEM; - evsel->open_flags = PERF_FLAG_FD_CLOEXEC; + evsel->core.open_flags = PERF_FLAG_FD_CLOEXEC; if (evsel->cgrp) - evsel->open_flags |= PERF_FLAG_PID_CGROUP; + evsel->core.open_flags |= PERF_FLAG_PID_CGROUP; return 0; } @@ -1853,7 +1853,7 @@ static void evsel__disable_missing_features(struct evsel *evsel) evsel->core.attr.clockid = 0; } if (perf_missing_features.cloexec) - evsel->open_flags &= ~(unsigned long)PERF_FLAG_FD_CLOEXEC; + evsel->core.open_flags &= ~(unsigned long)PERF_FLAG_FD_CLOEXEC; if (perf_missing_features.mmap2) evsel->core.attr.mmap2 = 0; if (evsel->pmu && evsel->pmu->missing_features.exclude_guest) @@ -1951,7 +1951,8 @@ bool evsel__detect_missing_features(struct evsel *evsel) perf_missing_features.clockid = true; pr_debug2_peo("switching off use_clockid\n"); return true; - } else if (!perf_missing_features.cloexec && (evsel->open_flags & PERF_FLAG_FD_CLOEXEC)) { + } else if (!perf_missing_features.cloexec && + (evsel->core.open_flags & PERF_FLAG_FD_CLOEXEC)) { perf_missing_features.cloexec = true; pr_debug2_peo("switching off cloexec flag\n"); return true; @@ -2055,11 +2056,12 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus, /* Debug message used by test scripts */ pr_debug2_peo("sys_perf_event_open: pid %d cpu %d group_fd %d flags %#lx", - pid, perf_cpu_map__cpu(cpus, idx).cpu, group_fd, evsel->open_flags); + pid, perf_cpu_map__cpu(cpus, idx).cpu, group_fd, + evsel->core.open_flags); fd = sys_perf_event_open(&evsel->core.attr, pid, perf_cpu_map__cpu(cpus, idx).cpu, - group_fd, evsel->open_flags); + group_fd, evsel->core.open_flags); FD(evsel, idx, thread) = fd; @@ -2076,7 +2078,7 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus, if (unlikely(test_attr__enabled)) { test_attr__open(&evsel->core.attr, pid, perf_cpu_map__cpu(cpus, idx), - fd, group_fd, evsel->open_flags); + fd, group_fd, evsel->core.open_flags); } /* Debug message used by test scripts */ diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h index 375a38e15cd9..2efda7ad8f96 100644 --- a/tools/perf/util/evsel.h +++ b/tools/perf/util/evsel.h @@ -165,7 +165,6 @@ struct evsel { struct bperf_follower_bpf *follower_skel; void *bpf_skel; }; - unsigned long open_flags; int precise_ip_original; /* for missing_features */ -- 2.44.0