aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/parse-events.c
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2012-08-16 15:10:21 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-08-22 12:40:49 -0400
commitac2ba9f36bb400755e411309f3e76dbf308a10e7 (patch)
tree126e4ce25d51de626056c2d6bc1b2afd7098558f /tools/perf/util/parse-events.c
parent9bfbbc6d1e6b4d055860231e232b807911bf8325 (diff)
perf tools: Catch event names from command line
Use command line string provided by the -e option to name events. This way we get unique events names that also support pmu event syntax (<pmu_name>/<config>/<modifier>). No need to reconstruct the name anymore from its attributes. We use the event_desc of the header to store the name in the perf.data header. Thus it is also available for perf report. Implemented by putting the parser in different states to parse events or configs. And since event names are now generated from the command line specification. Update event names in test cases accordingly. Signed-off-by: Robert Richter <robert.richter@amd.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1345144224-27280-6-git-send-email-robert.richter@amd.com [ committer note: Folded patch fixing 'perf test' failure reported by Jiri Olsa ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/parse-events.c')
-rw-r--r--tools/perf/util/parse-events.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 925784a930a8..b24630398b92 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -751,6 +751,18 @@ int parse_events__modifier_event(struct list_head *list, char *str, bool add)
751 return 0; 751 return 0;
752} 752}
753 753
754int parse_events_name(struct list_head *list, char *name)
755{
756 struct perf_evsel *evsel;
757
758 list_for_each_entry(evsel, list, node) {
759 if (!evsel->name)
760 evsel->name = strdup(name);
761 }
762
763 return 0;
764}
765
754static int parse_events__scanner(const char *str, void *data, int start_token) 766static int parse_events__scanner(const char *str, void *data, int start_token)
755{ 767{
756 YY_BUFFER_STATE buffer; 768 YY_BUFFER_STATE buffer;