diff options
author | Jiri Olsa <jolsa@redhat.com> | 2012-07-03 18:00:43 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-07-05 10:29:56 -0400 |
commit | cf3506dcc4a855d11af20bcb271ac921033ba0de (patch) | |
tree | c7c0261f08a6dcbf4a4caea7425d2033ff844f96 /tools | |
parent | 8c5f0a84c6b16e04195001bfd78281909519cf09 (diff) |
perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens
Spliting PE_VALUE_SYM token to PE_VALUE_SYM_HW and PE_VALUE_SYM_SW
tokens to separate hardware and software symbols.
This will be useful in upcomming patch where we want to be able to parse
out only hardware events.
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1341352848-11833-6-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/util/parse-events.l | 2 | ||||
-rw-r--r-- | tools/perf/util/parse-events.y | 15 |
2 files changed, 12 insertions, 5 deletions
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l index 6cbe092e6c3b..384ca74c6b22 100644 --- a/tools/perf/util/parse-events.l +++ b/tools/perf/util/parse-events.l | |||
@@ -56,7 +56,7 @@ static int sym(yyscan_t scanner, int type, int config) | |||
56 | YYSTYPE *yylval = parse_events_get_lval(scanner); | 56 | YYSTYPE *yylval = parse_events_get_lval(scanner); |
57 | 57 | ||
58 | yylval->num = (type << 16) + config; | 58 | yylval->num = (type << 16) + config; |
59 | return PE_VALUE_SYM; | 59 | return type == PERF_TYPE_HARDWARE ? PE_VALUE_SYM_HW : PE_VALUE_SYM_SW; |
60 | } | 60 | } |
61 | 61 | ||
62 | static int term(yyscan_t scanner, int type) | 62 | static int term(yyscan_t scanner, int type) |
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index 9525c455d27f..2bc5fbff2b5d 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y | |||
@@ -26,14 +26,15 @@ do { \ | |||
26 | %} | 26 | %} |
27 | 27 | ||
28 | %token PE_START_EVENTS PE_START_TERMS | 28 | %token PE_START_EVENTS PE_START_TERMS |
29 | %token PE_VALUE PE_VALUE_SYM PE_RAW PE_TERM | 29 | %token PE_VALUE PE_VALUE_SYM_HW PE_VALUE_SYM_SW PE_RAW PE_TERM |
30 | %token PE_NAME | 30 | %token PE_NAME |
31 | %token PE_MODIFIER_EVENT PE_MODIFIER_BP | 31 | %token PE_MODIFIER_EVENT PE_MODIFIER_BP |
32 | %token PE_NAME_CACHE_TYPE PE_NAME_CACHE_OP_RESULT | 32 | %token PE_NAME_CACHE_TYPE PE_NAME_CACHE_OP_RESULT |
33 | %token PE_PREFIX_MEM PE_PREFIX_RAW | 33 | %token PE_PREFIX_MEM PE_PREFIX_RAW |
34 | %token PE_ERROR | 34 | %token PE_ERROR |
35 | %type <num> PE_VALUE | 35 | %type <num> PE_VALUE |
36 | %type <num> PE_VALUE_SYM | 36 | %type <num> PE_VALUE_SYM_HW |
37 | %type <num> PE_VALUE_SYM_SW | ||
37 | %type <num> PE_RAW | 38 | %type <num> PE_RAW |
38 | %type <num> PE_TERM | 39 | %type <num> PE_TERM |
39 | %type <str> PE_NAME | 40 | %type <str> PE_NAME |
@@ -41,6 +42,7 @@ do { \ | |||
41 | %type <str> PE_NAME_CACHE_OP_RESULT | 42 | %type <str> PE_NAME_CACHE_OP_RESULT |
42 | %type <str> PE_MODIFIER_EVENT | 43 | %type <str> PE_MODIFIER_EVENT |
43 | %type <str> PE_MODIFIER_BP | 44 | %type <str> PE_MODIFIER_BP |
45 | %type <num> value_sym | ||
44 | %type <head> event_config | 46 | %type <head> event_config |
45 | %type <term> event_term | 47 | %type <term> event_term |
46 | %type <head> event_pmu | 48 | %type <head> event_pmu |
@@ -109,8 +111,13 @@ PE_NAME '/' event_config '/' | |||
109 | $$ = list; | 111 | $$ = list; |
110 | } | 112 | } |
111 | 113 | ||
114 | value_sym: | ||
115 | PE_VALUE_SYM_HW | ||
116 | | | ||
117 | PE_VALUE_SYM_SW | ||
118 | |||
112 | event_legacy_symbol: | 119 | event_legacy_symbol: |
113 | PE_VALUE_SYM '/' event_config '/' | 120 | value_sym '/' event_config '/' |
114 | { | 121 | { |
115 | struct parse_events_data__events *data = _data; | 122 | struct parse_events_data__events *data = _data; |
116 | struct list_head *list = NULL; | 123 | struct list_head *list = NULL; |
@@ -123,7 +130,7 @@ PE_VALUE_SYM '/' event_config '/' | |||
123 | $$ = list; | 130 | $$ = list; |
124 | } | 131 | } |
125 | | | 132 | | |
126 | PE_VALUE_SYM sep_slash_dc | 133 | value_sym sep_slash_dc |
127 | { | 134 | { |
128 | struct parse_events_data__events *data = _data; | 135 | struct parse_events_data__events *data = _data; |
129 | struct list_head *list = NULL; | 136 | struct list_head *list = NULL; |