On 17/04/14 16:40, Jiri Olsa wrote: > 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 :-\ Right. Something like char sys_name[128]; [...] snprintf(&sys_name, 128, "%s-%s", $1, $3); should be enough for all trace event names. And if not, the event should simply fail. Alexander, can you send an updates patch? -- 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