SNIP > diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c > index bf5d033ee1b4..3c52d0ab9270 100644 > --- a/tools/perf/util/parse-events.c > +++ b/tools/perf/util/parse-events.c > @@ -830,6 +830,7 @@ int parse_events(struct perf_evlist *evlist, const char > *str, > if (!ret) { > int entries = data.idx - evlist->nr_entries; > perf_evlist__splice_list_tail(evlist, &data.list, entries); > + evlist->nr_groups += data.nr_groups; > return 0; > } > > diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h > index c356e443448d..f6b0254afe17 100644 > --- a/tools/perf/util/parse-events.h > +++ b/tools/perf/util/parse-events.h > @@ -65,6 +65,7 @@ struct parse_events__term { > struct parse_events_data__events { > struct list_head list; > int idx; > + int nr_groups; > }; > > struct parse_events_data__terms { > diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y > index cd88209e3c58..d14bb507594b 100644 > --- a/tools/perf/util/parse-events.y > +++ b/tools/perf/util/parse-events.y > @@ -122,7 +122,9 @@ group_def: > PE_NAME '{' events '}' > { > struct list_head *list = $3; > + struct parse_events_data__events *data = _data; > > + data->nr_groups++;
perhaps if you inc nr_groups only if there's more than 1 event, you would not need your next patch: perf evlist: Add perf_evlist__recalc_nr_groups something like: if (!list_is_last(list)) data->nr_groups++; jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/