Messages in this thread Patch in this message | | | Date | Mon, 2 May 2022 21:17:53 -0700 | Subject | [PATCH v5 2/6] perf evlist: Clear all_cpus before propagating | From | Ian Rogers <> |
| |
all_cpus is merged into during propagation. Initially all_cpus is set from PMU sysfs. perf_evlist__set_maps will recompute it and change evsel->cpus to user_requested_cpus if they are given. If all_cpus isn't cleared then the union of the user_requested_cpus and PMU sysfs values is set to all_cpus, whereas just user_requested_cpus is necessary. To avoid this make all_cpus empty prior to propagation.
Signed-off-by: Ian Rogers <irogers@google.com> --- tools/lib/perf/evlist.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/lib/perf/evlist.c b/tools/lib/perf/evlist.c index a09315538a30..974b4585f93e 100644 --- a/tools/lib/perf/evlist.c +++ b/tools/lib/perf/evlist.c @@ -59,6 +59,10 @@ static void perf_evlist__propagate_maps(struct perf_evlist *evlist) { struct perf_evsel *evsel; + /* Recomputing all_cpus, so start with a blank slate. */ + perf_cpu_map__put(evlist->all_cpus); + evlist->all_cpus = NULL; + perf_evlist__for_each_evsel(evlist, evsel) __perf_evlist__propagate_maps(evlist, evsel); } -- 2.36.0.464.gb9c8b46e94-goog
| |