linux/tools/perf/util
Jiri Olsa 89812fc81f perf tools: Add parser generator for events parsing
Changing event parsing to use flex/bison parse generator.
The event syntax stays as it was.

grammar description:

events: events ',' event | event

event:  event_def PE_MODIFIER_EVENT | event_def

event_def: event_legacy_symbol sep_dc     |
           event_legacy_cache sep_dc      |
           event_legacy_breakpoint sep_dc |
           event_legacy_tracepoint sep_dc |
           event_legacy_numeric sep_dc    |
           event_legacy_raw sep_dc

event_legacy_symbol:      PE_NAME_SYM

event_legacy_cache:       PE_NAME_CACHE_TYPE '-' PE_NAME_CACHE_OP_RESULT '-' PE_NAME_CACHE_OP_RESULT |
                          PE_NAME_CACHE_TYPE '-' PE_NAME_CACHE_OP_RESULT  |
                          PE_NAME_CACHE_TYPE

event_legacy_raw:         PE_SEP_RAW PE_VALUE

event_legacy_numeric:     PE_VALUE ':' PE_VALUE

event_legacy_breakpoint:  PE_SEP_BP ':' PE_VALUE ':' PE_MODIFIER_BP

event_breakpoint_type:    PE_MODIFIER_BPTYPE | empty

PE_NAME_SYM:              cpu-cycles|cycles                              |
                          stalled-cycles-frontend|idle-cycles-frontend   |
                          stalled-cycles-backend|idle-cycles-backend     |
                          instructions                                   |
                          cache-references                               |
                          cache-misses                                   |
                          branch-instructions|branches                   |
                          branch-misses                                  |
                          bus-cycles                                     |
                          cpu-clock                                      |
                          task-clock                                     |
                          page-faults|faults                             |
                          minor-faults                                   |
                          major-faults                                   |
                          context-switches|cs                            |
                          cpu-migrations|migrations                      |
                          alignment-faults                               |
                          emulation-faults

PE_NAME_CACHE_TYPE:       L1-dcache|l1-d|l1d|L1-data             |
                          L1-icache|l1-i|l1i|L1-instruction      |
                          LLC|L2                                 |
                          dTLB|d-tlb|Data-TLB                    |
                          iTLB|i-tlb|Instruction-TLB             |
                          branch|branches|bpu|btb|bpc            |
                          node

PE_NAME_CACHE_OP_RESULT:  load|loads|read                        |
                          store|stores|write                     |
                          prefetch|prefetches                    |
                          speculative-read|speculative-load      |
                          refs|Reference|ops|access              |
                          misses|miss

PE_MODIFIER_EVENT:        [ukhp]{0,5}

PE_MODIFIER_BP:           [rwx]

PE_SEP_BP:                'mem'

PE_SEP_RAW:               'r'

sep_dc:                   ':' |

Added flex/bison files for event grammar parsing. The generated
parser is part of the patch. Added makefile rule 'event-parser'
to generate the parser code out of the bison/flex sources.

Acked-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/n/tip-u4pfig5waq3ll2bfcdex8fgi@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-03-16 14:20:21 -03:00
..
include perf tools: Add bitmap_or function into bitmap object 2012-02-13 23:28:10 -02:00
scripting-engines perf tools: Remove unnecessary ctype.h inclusion 2012-01-30 18:37:35 -02:00
ui Merge branch 'perf/hw-branch-sampling' into perf/core 2012-03-12 20:47:05 +01:00
abspath.c
alias.c
annotate.c perf annotate: Add missing newline on error message 2012-03-05 10:15:50 -03:00
annotate.h
bitmap.c perf tools: Add bitmap_or function into bitmap object 2012-02-13 23:28:10 -02:00
build-id.c
build-id.h
cache.h
callchain.c
callchain.h
cgroup.c
cgroup.h
color.c
color.h
config.c
cpumap.c perf tools: Add fprintf methods for thread_map and cpu_map classes 2012-01-24 19:46:48 -02:00
cpumap.h perf tools: Add fprintf methods for thread_map and cpu_map classes 2012-01-24 19:46:48 -02:00
ctype.c perf tools: ctype.c only wants util.h 2012-02-13 23:17:40 -02:00
debug.c
debug.h
debugfs.c perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
debugfs.h perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
dwarf-aux.c
dwarf-aux.h
environment.c
event.c perf tools: Ensure comm string is properly terminated 2012-02-29 18:29:45 -03:00
event.h perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
evlist.c perf evlist: Restore original errno after open failed 2012-03-05 10:15:49 -03:00
evlist.h perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
evsel.c perf record: Add support for sampling taken branch 2012-03-09 08:26:05 +01:00
evsel.h
exec_cmd.c
exec_cmd.h
generate-cmdlist.sh
header.c perf record: Add HEADER_BRANCH_STACK tag 2012-03-09 08:26:08 +01:00
header.h perf record: Add HEADER_BRANCH_STACK tag 2012-03-09 08:26:08 +01:00
help.c
help.h
hist.c perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
hist.h perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
hweight.c
levenshtein.c
levenshtein.h
map.c perf script: Add option resolving vmlinux path 2012-01-30 18:13:07 -02:00
map.h perf script: Unify the expressions indicating "unknown" 2012-01-30 17:57:57 -02:00
pager.c
parse-events-bison.c perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events-bison.h perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events-flex.c perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events-flex.h perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events.c perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events.h perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events.l perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-events.y perf tools: Add parser generator for events parsing 2012-03-16 14:20:21 -03:00
parse-options.c
parse-options.h
path.c
PERF-VERSION-GEN
probe-event.c Merge branch 'perf/urgent' into perf/core 2012-03-05 09:20:08 +01:00
probe-event.h
probe-finder.c Merge branch 'perf/urgent' into perf/core 2012-03-05 09:20:08 +01:00
probe-finder.h
pstack.c
pstack.h
python-ext-sources perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
python.c perf tools: Introduce per user view 2012-01-24 19:47:37 -02:00
quote.c
quote.h
run-command.c
run-command.h
session.c perf report: Enable TUI in branch view mode 2012-03-09 08:26:08 +01:00
session.h perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
setup.py perf tools: Fix build dependency of perf python extension 2012-02-13 18:01:25 -02:00
sigchain.c
sigchain.h
sort.c perf report: Auto-detect branch stack sampling mode 2012-03-09 08:26:08 +01:00
sort.h perf report: Enable TUI in branch view mode 2012-03-09 08:26:08 +01:00
strbuf.c
strbuf.h
strfilter.c
strfilter.h
string.c
strlist.c
strlist.h
svghelper.c
svghelper.h
symbol.c perf tools: Get rid of ctype.h in symbol.c 2012-02-13 23:22:50 -02:00
symbol.h perf report: Enable TUI in branch view mode 2012-03-09 08:26:08 +01:00
sysfs.c perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
sysfs.h perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
thread.c
thread.h
thread_map.c perf tools: fix broken perf record -a mode 2012-02-21 15:05:43 -02:00
thread_map.h perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
tool.h
top.c perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
top.h perf tools: Handle kernels that don't support attr.exclude_{guest,host} 2012-03-03 12:19:56 -03:00
trace-event-info.c perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 13:34:55 -02:00
trace-event-parse.c perf tools: Allow expressions in __print_symbolic() fields 2012-02-17 16:34:08 -02:00
trace-event-read.c perf tools: Remove unnecessary ctype.h inclusion 2012-01-30 18:37:35 -02:00
trace-event-scripting.c perf tools: Remove unnecessary ctype.h inclusion 2012-01-30 18:37:35 -02:00
trace-event.h
types.h
usage.c perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
util.c perf tools: Change perf_guest default back to false 2012-03-03 12:13:41 -03:00
util.h perf tools: Implement islower/isupper macro into util.h 2012-02-13 23:15:43 -02:00
values.c
values.h
wrapper.c
xyarray.c
xyarray.h