On Mon, Mar 24, 2014 at 09:49:00PM +0100, Christian Borntraeger wrote: > From: Alexander Yarygin <yarygin@xxxxxxxxxxxxxxxxxx> > > Trace events potentially can have a '-' in their trace system name, > e.g. kvm on s390 defines kvm-s390:* tracepoints. > tools/perf could not parse them, because there was no rule for this: > $ sudo ./perf top -e "kvm-s390:*" > invalid or unsupported event: 'kvm-s390:*' > > This patch adds an extra rule to event_legacy_tracepoint which handles > those cases. Without the patch, perf will not accept such tracepoints in > the -e option. > > Signed-off-by: Alexander Yarygin <yarygin@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > tools/perf/util/parse-events.y | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y > index 4eb67ec..dbbb01c 100644 > --- a/tools/perf/util/parse-events.y > +++ b/tools/perf/util/parse-events.y > @@ -299,6 +299,18 @@ PE_PREFIX_MEM PE_VALUE sep_dc > } > > event_legacy_tracepoint: > +PE_NAME '-' PE_NAME ':' PE_NAME > +{ > + struct parse_events_evlist *data = _data; > + struct list_head *list; > + char sys_name[strlen($1) + strlen($3) + 2]; hum, could you limit the size of sys_name array with some sane value? those strlens make me nervous :-\ thanks, jirka > + sprintf(&sys_name, "%s-%s", $1, $3); > + > + ALLOC_LIST(list); > + ABORT_ON(parse_events_add_tracepoint(list, &data->idx, &sys_name, $5)); > + $$ = list; > +} > +| > PE_NAME ':' PE_NAME > { > struct parse_events_evlist *data = _data; > -- > 1.8.4.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html