diff options
| -rw-r--r-- | tools/perf/util/evlist.c | 11 | ||||
| -rw-r--r-- | tools/perf/util/evlist.h | 1 |
2 files changed, 7 insertions, 5 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 785bfd392039..3a4445f26a2c 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c | |||
| @@ -1103,8 +1103,7 @@ int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages, | |||
| 1103 | return perf_evlist__mmap_ex(evlist, pages, overwrite, 0, false); | 1103 | return perf_evlist__mmap_ex(evlist, pages, overwrite, 0, false); |
| 1104 | } | 1104 | } |
| 1105 | 1105 | ||
| 1106 | static void perf_evlist__propagate_maps(struct perf_evlist *evlist, | 1106 | static void perf_evlist__propagate_maps(struct perf_evlist *evlist) |
| 1107 | bool has_user_cpus) | ||
| 1108 | { | 1107 | { |
| 1109 | struct perf_evsel *evsel; | 1108 | struct perf_evsel *evsel; |
| 1110 | 1109 | ||
| @@ -1113,7 +1112,7 @@ static void perf_evlist__propagate_maps(struct perf_evlist *evlist, | |||
| 1113 | * We already have cpus for evsel (via PMU sysfs) so | 1112 | * We already have cpus for evsel (via PMU sysfs) so |
| 1114 | * keep it, if there's no target cpu list defined. | 1113 | * keep it, if there's no target cpu list defined. |
| 1115 | */ | 1114 | */ |
| 1116 | if (!evsel->cpus || has_user_cpus) { | 1115 | if (!evsel->cpus || evlist->has_user_cpus) { |
| 1117 | cpu_map__put(evsel->cpus); | 1116 | cpu_map__put(evsel->cpus); |
| 1118 | evsel->cpus = cpu_map__get(evlist->cpus); | 1117 | evsel->cpus = cpu_map__get(evlist->cpus); |
| 1119 | } | 1118 | } |
| @@ -1138,7 +1137,9 @@ int perf_evlist__create_maps(struct perf_evlist *evlist, struct target *target) | |||
| 1138 | if (evlist->cpus == NULL) | 1137 | if (evlist->cpus == NULL) |
| 1139 | goto out_delete_threads; | 1138 | goto out_delete_threads; |
| 1140 | 1139 | ||
| 1141 | perf_evlist__propagate_maps(evlist, !!target->cpu_list); | 1140 | evlist->has_user_cpus = !!target->cpu_list; |
| 1141 | |||
| 1142 | perf_evlist__propagate_maps(evlist); | ||
| 1142 | 1143 | ||
| 1143 | return 0; | 1144 | return 0; |
| 1144 | 1145 | ||
| @@ -1157,7 +1158,7 @@ void perf_evlist__set_maps(struct perf_evlist *evlist, struct cpu_map *cpus, | |||
| 1157 | thread_map__put(evlist->threads); | 1158 | thread_map__put(evlist->threads); |
| 1158 | evlist->threads = threads; | 1159 | evlist->threads = threads; |
| 1159 | 1160 | ||
| 1160 | perf_evlist__propagate_maps(evlist, false); | 1161 | perf_evlist__propagate_maps(evlist); |
| 1161 | } | 1162 | } |
| 1162 | 1163 | ||
| 1163 | int perf_evlist__apply_filters(struct perf_evlist *evlist, struct perf_evsel **err_evsel) | 1164 | int perf_evlist__apply_filters(struct perf_evlist *evlist, struct perf_evsel **err_evsel) |
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index da2fa9172bd6..cfc4df68a9db 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h | |||
| @@ -42,6 +42,7 @@ struct perf_evlist { | |||
| 42 | int nr_mmaps; | 42 | int nr_mmaps; |
| 43 | bool overwrite; | 43 | bool overwrite; |
| 44 | bool enabled; | 44 | bool enabled; |
| 45 | bool has_user_cpus; | ||
| 45 | size_t mmap_len; | 46 | size_t mmap_len; |
| 46 | int id_pos; | 47 | int id_pos; |
| 47 | int is_pos; | 48 | int is_pos; |
