linux/tools/perf/util
Adrian Hunter 81cd60cc29 perf tools: Fix Intel PT timestamp handling
Events that don't sample the timestamp have a timestamp value of -1.

Intel PT processing wasn't taking that into account.

This is particularly noticeable with Intel BTS because timestamps are
not requested by default.

Then, if the conversion of -1 to TSC results in a small number, the
processing is unaffected.

However if the conversion results in a big number, then the data is
processed prematurely before relevant sideband data like mmap events,
which in turn results in samples with unknown dsos.

Commiter note:

Since BTS wasn't upstream, I split the patch to fold the BTS part with
the patch introducing it, to avoid having this bug in the commit
history. PT was already upstream, so this patch contains that part.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1440060692-5585-1-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-08-21 10:29:23 -03:00
..
include tools: Copy rbtree_augmented.h from the kernel 2015-07-05 22:59:05 -03:00
intel-pt-decoder perf tools: Add Intel PT decoder 2015-08-17 11:11:36 -03:00
scripting-engines tracing: Rename FTRACE_MAX_EVENT to TRACE_EVENT_TYPE_MAX 2015-05-13 14:06:42 -04:00
abspath.c
alias.c
annotate.c perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy 2015-08-21 10:29:23 -03:00
annotate.h perf annotate: Compute IPC and basic block cycles 2015-08-06 16:36:12 -03:00
auxtrace.c perf tools: Take Intel PT into use 2015-08-17 11:11:37 -03:00
auxtrace.h perf auxtrace: Add Intel PT as an AUX area tracing type 2015-08-17 11:11:36 -03:00
bitmap.c
Build perf tools: Add Intel PT support 2015-08-17 11:11:36 -03:00
build-id.c perf buildid: Use SBUILD_ID_SIZE macro 2015-07-20 17:49:50 -03:00
build-id.h perf buildid: Use SBUILD_ID_SIZE macro 2015-07-20 17:49:50 -03:00
cache.h perf report: Fix some option handling on --stdio 2015-05-14 10:05:22 -03:00
callchain.c perf callchain: Move option parsing code to util.c 2015-08-08 14:16:49 -03:00
callchain.h perf callchain: Move option parsing code to util.c 2015-08-08 14:16:49 -03:00
cgroup.c perf cgroup: Use atomic.h for refcounting 2015-05-15 16:12:20 -03:00
cgroup.h perf cgroup: Use atomic.h for refcounting 2015-05-15 16:12:20 -03:00
cloexec.c perf bench numa: Fix to show proper convergence stats 2015-06-25 12:28:35 -03:00
cloexec.h perf tools: Fix build errors with mipsel-linux-uclibc compiler 2015-08-05 16:56:16 -03:00
color.c perf tools: Do not include escape sequences in color_vfprintf return 2015-08-05 16:46:06 -03:00
color.h perf tools: Remove trail argument to color vsprintf 2015-08-05 16:44:02 -03:00
comm.c perf comm: Use atomic.h for refcounting 2015-05-27 12:21:43 -03:00
comm.h
config.c perf tools: Introduce llvm config options 2015-08-07 10:16:59 -03:00
counts.c perf stat: Move perf_counts struct and functions into separate object 2015-08-08 14:16:49 -03:00
counts.h perf stat: Move perf_counts struct and functions into separate object 2015-08-08 14:16:49 -03:00
cpumap.c perf tools: Add reference counting for cpu_map object 2015-06-25 15:15:50 -03:00
cpumap.h perf tools: Add reference counting for cpu_map object 2015-06-25 15:15:50 -03:00
ctype.c
data-convert-bt.c
data-convert-bt.h
data.c
data.h
db-export.c perf db-export: Fix thread ref-counting 2015-05-29 12:43:39 -03:00
db-export.h
debug.c perf tools: Introduce veprintf 2015-08-06 15:30:38 -03:00
debug.h perf tools: Introduce veprintf 2015-08-06 15:30:38 -03:00
dso.c perf tools: Reference count struct dso 2015-06-08 10:31:40 -03:00
dso.h perf symbols: Add front end cache for DSO symbol lookup 2015-07-23 11:28:35 -03:00
dwarf-aux.c perf probe: Fix to add missed brace around if block 2015-08-13 14:51:26 -03:00
dwarf-aux.h perf probe: Ignore tail calls to probed functions 2015-05-14 10:05:09 -03:00
environment.c perf report: Fix some option handling on --stdio 2015-05-14 10:05:22 -03:00
event.c perf tools: Add new PERF_RECORD_SWITCH event 2015-07-23 22:51:13 -03:00
event.h perf tools: Add support for cycles, weight branch_info field 2015-08-06 16:29:45 -03:00
evlist.c perf script: Fix segfault using --show-mmap-events 2015-08-21 10:29:22 -03:00
evlist.h perf tools: Add a helper function to probe whether cpu-wide tracing is possible 2015-08-17 11:08:37 -03:00
evsel.c perf callchain: Allow disabling call graphs per event 2015-08-12 13:20:28 -03:00
evsel.h perf callchain: Per-event type selection support 2015-08-12 13:20:27 -03:00
exec_cmd.c
exec_cmd.h
find-vdso-map.c
generate-cmdlist.sh
header.c perf header: Use argv style storage for cmdline feature data 2015-07-21 14:34:08 -03:00
header.h perf header: Use argv style storage for cmdline feature data 2015-07-21 14:34:08 -03:00
help.c
help.h
hist.c perf report: Show call graph from reference events 2015-08-12 13:20:28 -03:00
hist.h perf report: Add support for srcfile sort key 2015-08-10 17:20:25 -03:00
intel-pt.c perf tools: Fix Intel PT timestamp handling 2015-08-21 10:29:23 -03:00
intel-pt.h perf tools: Add Intel PT support 2015-08-17 11:11:36 -03:00
intlist.c
intlist.h
kvm-stat.h
levenshtein.c
levenshtein.h
llvm-utils.c perf tests: Add LLVM test for eBPF on-the-fly compiling 2015-08-07 10:57:24 -03:00
llvm-utils.h perf tests: Add LLVM test for eBPF on-the-fly compiling 2015-08-07 10:57:24 -03:00
lzma.c
machine.c Merge branch 'perf/urgent' into perf/core, to pick up fixes before adding more changes 2015-08-20 11:48:56 +02:00
machine.h perf tools: Add new PERF_RECORD_SWITCH event 2015-07-23 22:51:13 -03:00
map.c perf symbols: Introduce map__is_(kernel,kmodule)() 2015-07-23 11:28:36 -03:00
map.h perf symbols: Introduce map__is_(kernel,kmodule)() 2015-07-23 11:28:36 -03:00
ordered-events.c
ordered-events.h
pager.c perf report: Fix some option handling on --stdio 2015-05-14 10:05:22 -03:00
parse-branch-options.c perf record: Add support for sampling indirect jumps 2015-06-07 16:08:31 +02:00
parse-branch-options.h perf tools: Move branch option parsing to own file 2015-05-27 21:02:17 -03:00
parse-events.c perf callchain: Per-event type selection support 2015-08-12 13:20:27 -03:00
parse-events.h perf callchain: Per-event type selection support 2015-08-12 13:20:27 -03:00
parse-events.l perf callchain: Per-event type selection support 2015-08-12 13:20:27 -03:00
parse-events.y perf tools: Fix parse_events_error dereferences 2015-05-27 12:21:43 -03:00
parse-options.c
parse-options.h
path.c
perf_regs.c
perf_regs.h
PERF-VERSION-GEN
pmu.c perf tools: Take Intel PT into use 2015-08-17 11:11:37 -03:00
pmu.h perf tools: Add perf_pmu__format_bits() 2015-08-06 16:49:01 -03:00
pmu.l
pmu.y
probe-event.c perf probe: Move ftrace probe-event operations to probe-file.c 2015-07-20 17:49:49 -03:00
probe-event.h perf tools: Add missing forward declaration of struct map to probe-event.h 2015-08-06 15:38:40 -03:00
probe-file.c perf probe: Move ftrace probe-event operations to probe-file.c 2015-07-20 17:49:49 -03:00
probe-file.h perf probe: Move ftrace probe-event operations to probe-file.c 2015-07-20 17:49:49 -03:00
probe-finder.c perf strlist: Make dupstr be the default and part of an extensible config parm 2015-07-20 12:13:34 -03:00
probe-finder.h perf probe: Introduce probe_conf global configs 2015-05-08 16:26:26 -03:00
pstack.c
pstack.h
python-ext-sources perf stat: Move perf_counts struct and functions into separate object 2015-08-08 14:16:49 -03:00
python.c perf python: Add missing PERF_RECORD_{MMAP2,AUX,etc} 2015-07-29 10:51:45 -03:00
quote.c
quote.h
rblist.c
rblist.h
record.c perf tools: Add a helper function to probe whether cpu-wide tracing is possible 2015-08-17 11:08:37 -03:00
run-command.c
run-command.h
session.c perf tools: Add support for cycles, weight branch_info field 2015-08-06 16:29:45 -03:00
session.h
setup.py
sigchain.c
sigchain.h
sort.c perf sort: Check for SRCLINE_UNKNOWN case in "srcfile" processing 2015-08-12 10:27:02 -03:00
sort.h perf report: Add support for srcfile sort key 2015-08-10 17:20:25 -03:00
srcline.c perf tools: Support full source file paths for srcline 2015-08-10 11:58:05 -03:00
stat-shadow.c perf stat: Fix transaction lenght metrics 2015-07-28 12:05:04 -03:00
stat.c perf stat: Move perf_counts struct and functions into separate object 2015-08-08 14:16:49 -03:00
stat.h perf stat: Move perf_counts struct and functions into separate object 2015-08-08 14:16:49 -03:00
strbuf.c
strbuf.h
strfilter.c
strfilter.h
string.c perf tools: Asprintf like functions to format integer filter expression 2015-07-06 10:21:46 -03:00
strlist.c perf strlist: Make parse_list() private 2015-07-20 14:51:07 -03:00
strlist.h perf strlist: Make parse_list() private 2015-07-20 14:51:07 -03:00
svghelper.c perf tools: Add reference counting for cpu_map object 2015-06-25 15:15:50 -03:00
svghelper.h
symbol-elf.c perf symbols: Fix annotation of vdso 2015-08-17 11:07:38 -03:00
symbol-minimal.c
symbol.c perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy 2015-08-21 10:29:23 -03:00
symbol.h perf report: Show call graph from reference events 2015-08-12 13:20:28 -03:00
target.c
target.h
thread_map.c perf/core improvements and fixes: 2015-07-21 07:58:06 +02:00
thread_map.h perf thrad_map: Add comm string into array 2015-06-26 11:07:01 -03:00
thread-stack.c perf tools: Ensure thread-stack is flushed 2015-06-19 16:03:33 -03:00
thread-stack.h perf tools: Ensure thread-stack is flushed 2015-06-19 16:03:33 -03:00
thread.c perf tools: Avoid deadlock when map_groups are broken 2015-08-19 14:15:09 -03:00
thread.h perf tools: Elliminate alignment holes 2015-05-18 10:17:33 -03:00
tool.h perf tools: Add new PERF_RECORD_SWITCH event 2015-07-23 22:51:13 -03:00
top.c
top.h
trace-event-info.c perf tools: Stop copying kallsyms into the perf.data file header 2015-07-23 22:51:12 -03:00
trace-event-parse.c perf tools: Stop reading the kallsyms data from perf.data 2015-07-23 22:51:11 -03:00
trace-event-read.c perf tools: Stop reading the kallsyms data from perf.data 2015-07-23 22:51:11 -03:00
trace-event-scripting.c
trace-event.c perf python: Remove dependency on 'machine' methods 2015-07-29 10:51:44 -03:00
trace-event.h perf python: Remove dependency on 'machine' methods 2015-07-29 10:51:44 -03:00
tsc.c
tsc.h
unwind-libdw.c
unwind-libdw.h
unwind-libunwind.c perf unwind: Fix a compile error 2015-06-16 10:40:03 -03:00
unwind.h
usage.c
util.c perf callchain: Move option parsing code to util.c 2015-08-08 14:16:49 -03:00
util.h perf tools: Support full source file paths for srcline 2015-08-10 11:58:05 -03:00
values.c
values.h
vdso.c perf tools: Fix lockup using 32-bit compat vdso 2015-07-07 11:05:08 -03:00
vdso.h perf machine: Fix up vdso methods names 2015-05-29 12:43:44 -03:00
wrapper.c
xyarray.c perf tools: Introduce xyarray__reset function 2015-06-16 10:34:39 -03:00
xyarray.h perf tools: Introduce xyarray__reset function 2015-06-16 10:34:39 -03:00
zlib.c