diff options
-rw-r--r-- | tools/perf/util/parse-events.c | 6 | ||||
-rw-r--r-- | tools/perf/util/parse-events.y | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index e34c81a0bcf3..e75628813968 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c | |||
@@ -645,6 +645,12 @@ int parse_events_add_pmu(struct list_head *list, int *idx, | |||
645 | 645 | ||
646 | memset(&attr, 0, sizeof(attr)); | 646 | memset(&attr, 0, sizeof(attr)); |
647 | 647 | ||
648 | if (!head_config) { | ||
649 | attr.type = pmu->type; | ||
650 | evsel = __add_event(list, idx, &attr, NULL, pmu->cpus); | ||
651 | return evsel ? 0 : -ENOMEM; | ||
652 | } | ||
653 | |||
648 | if (perf_pmu__check_alias(pmu, head_config, &unit, &scale)) | 654 | if (perf_pmu__check_alias(pmu, head_config, &unit, &scale)) |
649 | return -EINVAL; | 655 | return -EINVAL; |
650 | 656 | ||
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index 0bc87ba46bf3..55fab6ad609a 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y | |||
@@ -210,6 +210,16 @@ PE_NAME '/' event_config '/' | |||
210 | parse_events__free_terms($3); | 210 | parse_events__free_terms($3); |
211 | $$ = list; | 211 | $$ = list; |
212 | } | 212 | } |
213 | | | ||
214 | PE_NAME '/' '/' | ||
215 | { | ||
216 | struct parse_events_evlist *data = _data; | ||
217 | struct list_head *list; | ||
218 | |||
219 | ALLOC_LIST(list); | ||
220 | ABORT_ON(parse_events_add_pmu(list, &data->idx, $1, NULL)); | ||
221 | $$ = list; | ||
222 | } | ||
213 | 223 | ||
214 | value_sym: | 224 | value_sym: |
215 | PE_VALUE_SYM_HW | 225 | PE_VALUE_SYM_HW |