diff options
Diffstat (limited to 'tools/perf/util/parse-events.c')
| -rw-r--r-- | tools/perf/util/parse-events.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index f6257fb4f08c..56694e3409ea 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/hw_breakpoint.h>  #include <linux/err.h>  #include <dirent.h> @@ -309,10 +310,11 @@ static char *get_config_name(struct list_head *head_terms)  static struct perf_evsel *  __add_event(struct list_head *list, int *idx,  	    struct perf_event_attr *attr, -	    char *name, struct cpu_map *cpus, +	    char *name, struct perf_pmu *pmu,  	    struct list_head *config_terms, bool auto_merge_stats)  {  	struct perf_evsel *evsel; +	struct cpu_map *cpus = pmu ? pmu->cpus : NULL;  	event_attr_init(attr); @@ -323,7 +325,7 @@ __add_event(struct list_head *list, int *idx,  	(*idx)++;  	evsel->cpus        = cpu_map__get(cpus);  	evsel->own_cpus    = cpu_map__get(cpus); -	evsel->system_wide = !!cpus; +	evsel->system_wide = pmu ? pmu->is_uncore : false;  	evsel->auto_merge_stats = auto_merge_stats;  	if (name) @@ -1233,7 +1235,7 @@ static int __parse_events_add_pmu(struct parse_events_state *parse_state,  	if (!head_config) {  		attr.type = pmu->type; -		evsel = __add_event(list, &parse_state->idx, &attr, NULL, pmu->cpus, NULL, auto_merge_stats); +		evsel = __add_event(list, &parse_state->idx, &attr, NULL, pmu, NULL, auto_merge_stats);  		return evsel ? 0 : -ENOMEM;  	} @@ -1254,7 +1256,7 @@ static int __parse_events_add_pmu(struct parse_events_state *parse_state,  		return -EINVAL;  	evsel = __add_event(list, &parse_state->idx, &attr, -			    get_config_name(head_config), pmu->cpus, +			    get_config_name(head_config), pmu,  			    &config_terms, auto_merge_stats);  	if (evsel) {  		evsel->unit = info.unit; |