Arnaldo Carvalho de Melo
cb9dd49e11
perf tools: Fix synthesizing tracepoint names from the perf.data headers
...
We need to use the per event info snapshoted at record time to
synthesize the events name, so do it just after reading the perf.data
headers, when we already processed the /sys events data, otherwise we'll
end up using the local /sys that only by sheer luck will have the same
tracepoint ID -> real event association.
Example:
# uname -a
Linux felicio.ghostprotocols.net 3.4.0-rc5+ #1 SMP Sat May 19 15:27:11 BRT 2012 x86_64 x86_64 x86_64 GNU/Linux
# perf record -e sched:sched_switch usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.015 MB perf.data (~648 samples) ]
# cat /t/events/sched/sched_switch/id
279
# perf evlist -v
sched:sched_switch: sample_freq=1, type: 2, config: 279, size: 80, sample_type: 1159, read_format: 7, disabled: 1, inherit: 1, mmap: 1, comm: 1, enable_on_exec: 1, sample_id_all: 1, exclude_guest: 1
#
So on the above machine the sched:sched_switch has tracepoint id 279, but on
the machine were we'll analyse it it has a different id:
$ cat /t/events/sched/sched_switch/id
56
$ perf evlist -i /tmp/perf.data
kmem:mm_balancedirty_writeout
$ cat /t/events/kmem/mm_balancedirty_writeout/id
279
With this fix:
$ perf evlist -i /tmp/perf.data
sched:sched_switch
Reported-by: Dmitry Antipov <dmitry.antipov@linaro.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-auwks8fpuhmrdpiefs55o5oz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-06-12 11:28:09 -03:00
..
include
perf tools: Fix endianity swapping for adds_features bitmask
2012-06-11 11:20:01 -03:00
scripting-engines
perf script: Rename struct event to struct event_format in perl engine
2012-05-22 12:32:29 -03:00
abspath.c
perf tools: Remove some unused functions
2010-05-18 23:03:35 -03:00
alias.c
perf_counter tools: Add more warnings and fix/annotate them
2009-07-01 12:49:48 +02:00
annotate.c
perf annotate: Introduce ->free() method in ins_ops
2012-05-12 13:26:20 -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
perf hist: Replace ->print() routines by ->snprintf() equivalents
2010-04-02 16:28:15 -03:00
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 tools: Introduce perf_target__strerror()
2012-05-07 17:30:21 -03:00
debug.h
perf tools: Move UI bits to tools/perf/ui directory
2012-04-11 17:16:40 -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
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 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: Pass third argument to ioctl explicitly
2012-05-31 11:39:16 -03:00
evlist.h
perf stat: Initialize default events wrt exclude_{guest,host}
2012-05-30 14:02:38 -03:00
evsel.c
perf evsel: Fix 32 bit values endianity swap for sample_id_all header
2012-05-31 11:59:01 -03:00
evsel.h
perf tools: Reconstruct event with modifiers from perf_event_attr
2012-05-25 16:38:11 -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
header.c
perf tools: Fix synthesizing tracepoint names from the perf.data headers
2012-06-12 11:28:09 -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
perf tools: Protect header files with a consistent style
2009-09-24 21:27:51 +02:00
hist.c
perf callchain: Make callchain cursors TLS
2012-05-31 10:47:12 -03:00
hist.h
perf callchain: Make callchain cursors TLS
2012-05-31 10:47:12 -03:00
hweight.c
perf tools: Don't use code surrounded by __KERNEL__
2010-05-02 12:00:44 -03:00
levenshtein.c
levenshtein.h
perf tools: Protect header files with a consistent style
2009-09-24 21:27:51 +02:00
map.c
perf annotate: Validate addr in symbol__inc_addr_samples
2012-04-05 19:51:14 -03:00
map.h
perf annotate: Validate addr in symbol__inc_addr_samples
2012-04-05 19:51:14 -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 tools: Add hardcoded name term for pmu events
2012-05-22 11:47:54 -03:00
parse-events.c
perf tools: Reconstruct event with modifiers from perf_event_attr
2012-05-25 16:38:11 -03:00
parse-events.h
perf tools: Add hardcoded name term for pmu events
2012-05-22 11:47:54 -03:00
parse-events.l
perf tools: Add hardcoded name term for pmu events
2012-05-22 11:47:54 -03:00
parse-events.y
perf tools: Add hardcoded name term for pmu events
2012-05-22 11:47:54 -03:00
parse-options.c
perf options: Type check all the remaining OPT_ variants
2010-05-17 16:22:41 -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-VERSION-GEN
perf tools: Make --version show kernel version instead of pull req tag
2012-05-31 11:20:59 -03:00
pmu.c
perf tools: Add hardcoded name term for pmu events
2012-05-22 11:47:54 -03:00
pmu.h
perf tools: Add perf pmu object to access pmu format definition
2012-03-16 14:29:35 -03: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
perf newt: Make <- zoom out filters
2010-05-14 20:05:21 -03:00
pstack.h
perf ui: Move hists browser to util/ui/browsers/
2010-08-10 16:11:08 -03:00
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
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
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: Fix endianity swapping for adds_features bitmask
2012-06-11 11:20:01 -03:00
session.h
perf tools: Fix endianity swapping for adds_features bitmask
2012-06-11 11:20:01 -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
Merge branch 'perf/urgent' into perf/core
2012-03-22 15:09:08 -03:00
sort.h
perf report: Enable TUI in branch view mode
2012-03-09 08:26:08 +01: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 probe: Move strtailcmp to string.c
2011-07-15 16:00:47 -04:00
strlist.c
perf probe: Fix --del to update current event list
2009-12-15 20:22:01 +01:00
strlist.h
perf tools: Add for_each macros for strlist
2009-12-15 20:22:02 +01:00
svghelper.c
perf timechart: Fix black idle boxes in the title
2011-02-28 08:56:14 +01:00
svghelper.h
perf tools: Protect header files with a consistent style
2009-09-24 21:27:51 +02:00
symbol.c
perf symbols: Check for valid dso before creating map
2012-05-31 12:08:22 -03:00
symbol.h
perf symbols: Handle different endians properly during symbol load
2012-05-31 11:55:36 -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 tools: Introduce perf_target__strerror()
2012-05-07 17:30:21 -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 top: Convert to struct perf_target
2012-05-02 15:20:30 -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
parse-events: Rename struct record to struct pevent_record
2012-04-25 13:35:48 +02:00
trace-event-read.c
parse-events: Rename struct record to struct pevent_record
2012-04-25 13:35:48 +02:00
trace-event-scripting.c
perf tools: Remove unnecessary ctype.h inclusion
2012-01-30 18:37:35 -02:00
trace-event.h
parse-events: Rename struct record to struct pevent_record
2012-04-25 13:35:48 +02:00
types.h
perf tools: Add union u64_swap type for swapping u64 data
2012-05-22 12:50:25 -03:00
usage.c
perf target: Introduce perf_target__parse_uid()
2012-05-07 16:46:48 -03:00
util.c
perf annotate browser: Align jump labels
2012-04-19 13:15:24 -03:00
util.h
Fixes and improvements for perf/core:
2012-05-11 08:13:55 +02:00
values.c
perf tools: Fix a memory leak on perf_read_values_destroy
2011-12-20 13:41:34 -02:00
values.h
perf tools: Protect header files with a consistent style
2009-09-24 21:27:51 +02:00
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