linux/tools/perf/util
Jiri Olsa 89efb02950 perf tools: Add support to parse event group syntax
Adding scanner/parser bits to parse event groups.

The grammar for group is:
  groups:      groups ',' group | group
  group:       group_name '{' events '}' group_mod
  group_name:  name | empty
  group_mod:   ':' group_mods | empty
  group_mods:  event_mod

It's possible to use standard event modifier as a modifier
for group. It'll be used as an update to existing event
modifiers.

It's necessary to use quoting ("'\) when specifying group on
command line, since {} characters are interpreted by most of
the shells.

It is now possible to specify groups in event syntax like:

  '{cycles,faults}'
   - anonymous group

  'group1{cycles,faults}
   - group with name 'group1'

  '{cycles,faults}:k
   - anonymous group with event modifier 'k'

  '{cpu-clock,task-clock},{minor-faults,major-faults}'
   - two anonymous groups

The grouping functionality itself is coming shortly.

Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ulrich Drepper <drepper@gmail.com>
Link: http://lkml.kernel.org/n/tip-p4j8bnvo879uokum4k4zk5q6@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-08-14 17:03:44 -03:00
..
include perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
scripting-engines perf script python: Correct handler check and spelling errors 2012-08-09 13:26:19 -03:00
PERF-VERSION-GEN perf tools: Make --version show kernel version instead of pull req tag 2012-05-31 11:20:59 -03:00
abspath.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
alias.c
annotate.c perf annotate: Prevent overflow in size calculation 2012-07-25 13:06:42 -03:00
annotate.h perf annotate: Introduce ->free() method in ins_ops 2012-05-12 13:26:20 -03:00
bitmap.c perf tools: Add bitmap_or function into bitmap object 2012-02-13 23:28:10 -02:00
build-id.c perf buildid-list: Work better with pipe mode 2012-05-22 13:03:54 -03:00
build-id.h perf tools: Rename perf_event_ops to perf_tool 2011-11-28 10:39:28 -02:00
cache.h perf ui: Change fallback policy of setup_browser() 2012-05-02 16:17:37 -03:00
callchain.c perf callchain: Make callchain cursors TLS 2012-05-31 10:47:12 -03:00
callchain.h perf callchain: Make callchain cursors TLS 2012-05-31 10:47:12 -03:00
cgroup.c perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
cgroup.h perf tool: Add cgroup support 2011-02-16 13:30:48 +01:00
color.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
color.h
config.c perf config: Allow '_' in config file variable names 2012-05-29 21:59:02 -03:00
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 perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00
debug.h perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00
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
dso-test-data.c perf test: Add dso data caching tests 2012-07-25 11:33:17 -03:00
dwarf-aux.c perf probe: Filter out redundant inline-instances 2011-08-12 09:34:35 -03:00
dwarf-aux.h perf probe: Search concrete out-of-line instances 2011-08-12 09:32:10 -03:00
environment.c
event.c perf symbols: Remove unused 'end' arg in kallsyms parse cb 2012-08-13 14:10:31 -03:00
event.h perf tools: Support user regs and stack in sample parsing 2012-08-10 16:47:02 -03:00
evlist.c perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
evlist.h perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
evsel.c perf tools: Support for DWARF mode callchain 2012-08-11 15:07:18 -03:00
evsel.h perf evsel: Cache associated event_format 2012-08-07 23:43:37 -03:00
exec_cmd.c perf tools: Makefile: Remove various and sundry cruft 2011-02-18 07:43:06 -02:00
exec_cmd.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
generate-cmdlist.sh perf symbols: Support minimal build without libelf 2012-08-09 16:26:38 -03:00
header.c perf tools: Support user regs and stack in sample parsing 2012-08-10 16:47:02 -03:00
header.h perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA 2012-05-22 12:57:46 -03:00
help.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
help.h
hist.c perf hists: Print newline between hists callchains 2012-07-25 11:32:26 -03:00
hist.h perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
hweight.c
intlist.c perf tools: Introduce intlist 2012-08-03 10:42:25 -03:00
intlist.h perf tools: Introduce intlist 2012-08-03 10:42:25 -03:00
levenshtein.c
levenshtein.h
map.c perf symbols: Remove unused function map__objdump_2ip 2012-08-13 12:55:09 -03:00
map.h perf symbols: Remove unused function map__objdump_2ip 2012-08-13 12:55:09 -03:00
pager.c perf tools: Fix pager on minimal-install embedded systems 2012-05-30 15:10:39 -03:00
parse-events-test.c perf test: Fix parse events automated tests 2012-08-01 18:42:10 -03:00
parse-events.c perf tools: Add support to parse event group syntax 2012-08-14 17:03:44 -03:00
parse-events.h perf tools: Add support to parse event group syntax 2012-08-14 17:03:44 -03:00
parse-events.l perf tools: Add support to parse event group syntax 2012-08-14 17:03:44 -03:00
parse-events.y perf tools: Add support to parse event group syntax 2012-08-14 17:03:44 -03:00
parse-options.c perf tool: Save cmdline from user in file header vs what is passed to record 2012-08-03 10:33:50 -03:00
parse-options.h perf options: add OPT_CALLBACK_DEFAULT_NOOPT 2010-12-06 15:33:29 -02:00
path.c perf tools: add test for strlcpy() 2010-08-21 11:22:47 -03:00
perf_regs.h perf tools: Add interface to arch registers sets 2012-08-10 16:32:59 -03:00
pmu.c perf tools: Fix generation of pmu list 2012-06-29 13:31:27 -03:00
pmu.h perf/tool: Add PMU event alias support 2012-06-18 12:13:26 +02:00
pmu.l perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
pmu.y perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
probe-event.c perf uprobes: Remove unnecessary check before strlist__delete 2012-05-31 12:08:49 -03:00
probe-event.h perf probe: Provide perf interface for uprobes 2012-05-11 13:58:17 -03:00
probe-finder.c perf probe: Finder fails to resolve function name to address 2012-03-28 11:56:49 -03:00
probe-finder.h perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
pstack.c
pstack.h perf ui: Move hists browser to util/ui/browsers/ 2010-08-10 16:11:08 -03:00
python-ext-sources perf tools: Add missing files to build the python binding 2012-08-14 14:17:30 -03:00
python.c perf evlist: Introduce perf_evlist__parse_sample 2012-08-02 11:42:57 -03:00
quote.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
quote.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
rblist.c perf tools: Introducing rblist 2012-08-03 10:37:21 -03:00
rblist.h perf tools: Introducing rblist 2012-08-03 10:37:21 -03:00
run-command.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
session.c perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
session.h perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
setup.py perf tools: Fix build dependency of perf python extension 2012-02-13 18:01:25 -02:00
sigchain.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sigchain.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sort.c perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
sort.h perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
strbuf.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strfilter.c perf: Fix missing strndup declaration 2011-03-04 01:17:18 +01:00
strfilter.h perf tools: Add strfilter for general purpose string filter 2011-01-28 09:19:38 -02:00
string.c perf lib: Introduce rtrim 2012-06-19 13:06:19 -03:00
strlist.c perf tools: Change strlist to use the new rblist 2012-08-03 10:39:51 -03:00
strlist.h perf tools: Change strlist to use the new rblist 2012-08-03 10:39:51 -03:00
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h
symbol-elf.c perf symbols: Use both runtime and debug images 2012-08-13 14:46:55 -03:00
symbol-minimal.c perf symbols: Use both runtime and debug images 2012-08-13 14:46:55 -03:00
symbol.c perf symbols: Use both runtime and debug images 2012-08-13 14:46:55 -03:00
symbol.h perf symbols: Use both runtime and debug images 2012-08-13 14:46:55 -03: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
target.c perf target: Fix check on buffer size 2012-08-01 18:42:54 -03:00
target.h perf target: Add uses_mmap field 2012-05-17 12:32:54 -03:00
thread.c perf session: Move threads to struct machine 2011-11-28 10:35:31 -02:00
thread.h perf tools: Resolve machine earlier and pass it to perf_event_ops 2011-11-28 10:39:12 -02:00
thread_map.c perf tools: fix thread_map__new_by_pid_str() memory leak in error path 2012-05-25 11:40:59 -03:00
thread_map.h perf tools: Fix thread map that is type pid_t 2012-04-11 17:38:50 -03:00
tool.h perf tools: Save some loops using perf_evlist__id2evsel 2011-11-28 17:57:40 -02:00
top.c perf tools: Move all users of event_name to perf_evsel__name 2012-06-19 13:06:20 -03:00
top.h perf top: Convert to struct perf_target 2012-05-02 15:20:30 -03:00
trace-event-info.c perf: Have perf use the new libtraceevent.a library 2012-04-25 13:28:48 +02:00
trace-event-parse.c perf script: Fix a NULL pointer dereference 2012-08-14 10:36:30 -03:00
trace-event-read.c perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
trace-event-scripting.c perf script: Replace "struct thread" with "struct addr_location" as a parameter for "process_event()" 2012-08-08 12:46:40 -03:00
trace-event.h perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
types.h perf tools: Add union u64_swap type for swapping u64 data 2012-05-22 12:50:25 -03:00
unwind.c perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
unwind.h perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
usage.c perf target: Introduce perf_target__parse_uid() 2012-05-07 16:46:48 -03:00
util.c perf tools: Add dump_stack function 2012-08-07 23:32:05 -03:00
util.h perf tools: Add dump_stack function 2012-08-07 23:32:05 -03:00
values.c perf tools: Fix a memory leak on perf_read_values_destroy 2011-12-20 13:41:34 -02:00
values.h
wrapper.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
xyarray.c perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
xyarray.h perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00