linux/tools/perf/util
David Ahern 9cbdb70209 perf script: improve validation of sample attributes for output fields
Check for required sample attributes using evsel rather than sample_type
in the session header. If the attribute for a default field is not
present for the event type (e.g., new command operating on file from
older kernel) the field is removed from the output list.

Expected event types must exist. For example, if a user specifies

  -f trace:time,trace -f sw:time,cpu,sym

the perf.data file must contain both tracepoints and software events
(ie., it is an error if either does not exist in the file).

Attribute checking is done once at the beginning of perf-script rather
than for each sample.

v1 -> v2:
- addressed comments from acme

Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1302148460-570-1-git-send-email-daahern@cisco.com
Signed-off-by: David Ahern <daahern@cisco.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2011-04-20 07:27:52 -03:00
..
include perf evsel: Introduce perf_evlist 2011-01-22 19:56:28 -02:00
scripting-engines perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
ui perf hists browser: Fix seg fault when annotate null symbol 2011-04-15 12:51:49 -03:00
abspath.c
alias.c
annotate.c perf symbols: Rename dso->origin to dso->symtab_type 2011-03-11 13:28:45 -03:00
annotate.h perf top: Live TUI Annotation 2011-02-22 12:02:07 -03:00
bitmap.c
build-id.c perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
build-id.h
cache.h perf tools: Don't fallback to setup_pager unconditionally 2011-01-31 18:08:39 -02:00
callchain.c perf tools: Kill event_t typedef, use 'union perf_event' instead 2011-01-29 16:25:37 -02:00
callchain.h perf tools: Kill event_t typedef, use 'union perf_event' instead 2011-01-29 16:25:37 -02:00
cgroup.c perf: Fix a build error with some GCC versions 2011-04-08 17:40:21 +02:00
cgroup.h perf tool: Add cgroup support 2011-02-16 13:30:48 +01:00
color.c
color.h
config.c
cpumap.c perf tools: Add missing cpu_map__delete() 2011-01-22 19:56:30 -02:00
cpumap.h perf tools: Add missing cpu_map__delete() 2011-01-22 19:56:30 -02:00
ctype.c
debug.c perf tools: Fixup exit path when not able to open events 2011-03-29 13:40:27 -03:00
debug.h perf tools: Fixup exit path when not able to open events 2011-03-29 13:40:27 -03:00
debugfs.c
debugfs.h
environment.c
event.c perf symbols: Fix vsyscall symbol lookup 2011-03-28 14:44:15 -03:00
event.h Merge remote branch 'acme/perf/urgent' into perf/core 2011-02-11 11:45:54 -02:00
evlist.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
evlist.h perf session: Use evlist/evsel for managing perf.data attributes 2011-03-10 11:15:54 -03:00
evsel.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
evsel.h perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
exec_cmd.c perf tools: Makefile: Remove various and sundry cruft 2011-02-18 07:43:06 -02:00
exec_cmd.h
generate-cmdlist.sh
header.c perf build-id: Add quirk to deal with perf.data file format breakage 2011-03-23 19:29:40 -03:00
header.h perf header: Stop using 'self' 2011-03-10 11:16:28 -03:00
help.c
help.h
hist.c perf tools: Improve support for sessions with multiple events 2011-03-06 13:13:40 -03:00
hist.h perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
hweight.c
levenshtein.c
levenshtein.h
map.c perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
map.h
pager.c
parse-events.c perf script: Add support for H/W and S/W events 2011-03-14 17:07:20 -03:00
parse-events.h perf script: Add support for H/W and S/W events 2011-03-14 17:07:20 -03:00
parse-options.c
parse-options.h
path.c
PERF-VERSION-GEN perf tools: Version incorrect with some versions of grep 2011-03-16 08:59:50 -03:00
probe-event.c perf probe: Fix multiple --vars options behavior 2011-04-05 15:36:04 -03:00
probe-event.h perf probe: Add filters support for available functions 2011-01-28 09:20:25 -02:00
probe-finder.c Merge branch 'perf/urgent' into perf/core 2011-04-19 07:56:17 +02:00
probe-finder.h perf probe: Add fastpath to do lookup by function name 2011-03-29 13:40:27 -03:00
pstack.c
pstack.h
python.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
quote.c
quote.h
run-command.c
run-command.h
session.c perf script: improve validation of sample attributes for output fields 2011-04-20 07:27:52 -03:00
session.h perf script: improve validation of sample attributes for output fields 2011-04-20 07:27:52 -03:00
setup.py perf tools: Fix NO_NEWT=1 python build error 2011-03-29 16:46:57 -03:00
sigchain.c
sigchain.h
sort.c
sort.h
strbuf.c
strbuf.h
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 Fix common misspellings 2011-03-31 11:26:23 -03:00
strlist.c
strlist.h
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h
symbol.c perf symbols: Give more useful names to 'self' parameters 2011-04-19 08:18:35 -03:00
symbol.h perf symbols: Give more useful names to 'self' parameters 2011-04-19 08:18:35 -03:00
thread_map.c perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
thread_map.h perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
thread.c perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
thread.h perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
top.c perf top: Remove redundant syme->origin field 2011-03-11 13:28:45 -03:00
top.h perf symbol: Move sym_entry->skip to symbol->ignore 2011-03-11 13:36:01 -03:00
trace-event-info.c perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
trace-event-parse.c perf script: Move printing of 'common' data from print_event and rename 2011-03-14 17:05:55 -03:00
trace-event-read.c
trace-event-scripting.c perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
trace-event.h perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
types.h perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
usage.c
util.c perf util: Move do_read from session to util 2011-01-03 16:50:55 -02:00
util.h perf tools: Makefile: Remove platform-specific cruft 2011-02-18 07:42:07 -02:00
values.c perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
values.h
wrapper.c
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