linux/tools/perf
Don Zickus 06b2afc0b9 perf machine: Fallback to MAP__FUNCTION if daddr maps are NULL
As we run "perf c2c" on more applications, we noticed we're missing
significant samples from a common customer's application.  Looking at
the /proc/<pid>/maps file for the app, we see "rwxs" and "rwxp"
permissions on many of the shared memory & heap regions, and on all the
thread stacks.

Because those regions have the "x" bit set, perf marks them with a
MAP_FUNCTION type.  Hence ip_resolve_data() never finds load or store
events coming from them.

We fixed this by re-calling thread__find_addr_location with
MAP__FUNCTION in the case where map is NULL as a last ditch effort to
map the sample before giving up and dropping it.

Reported-by: Joe Mario <jmario@redhat.com>
Tested-by: Joe Mario <jmario@redhat.com>
Signed-off-by: Don Zickus <dzickus@redhat.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Joe Mario <jmario@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1408591511-57884-1-git-send-email-dzickus@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2014-08-22 13:12:13 -03:00
..
arch perf tools powerpc: Explicitly include util/debug.h 2014-08-20 08:29:10 -03:00
bench perf tools: Enable close-on-exec flag on perf file descriptor 2014-07-18 09:09:34 +02:00
config perf tools: Default to python version 2 2014-08-12 12:03:08 -03:00
Documentation perf top: Add -w option for setting column width 2014-08-12 12:03:06 -03:00
python perf python: Remove duplicate TID bit from mask 2013-08-07 17:35:25 -03:00
scripts perf script: Add callchain to generic and tracepoint events 2014-07-16 17:57:33 -03:00
tests perf tests: Add a test for tracking with sched_switch 2014-08-22 13:10:35 -03:00
ui perf hists browser: Cleanup callchain print functions 2014-08-22 13:12:12 -03:00
util perf machine: Fallback to MAP__FUNCTION if daddr maps are NULL 2014-08-22 13:12:13 -03:00
.gitignore perf tools: Ignore 'perf timechart' output file 2013-10-11 12:17:37 -03:00
builtin-annotate.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-bench.c perf bench: Add --repeat option 2014-06-19 16:13:15 -03:00
builtin-buildid-cache.c perf buildid-cache: Use strerror_r instead of strerror 2014-08-15 13:07:59 -03:00
builtin-buildid-list.c perf session: Separating data file properties from session 2013-10-21 17:33:25 -03:00
builtin-diff.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-evlist.c perf tools: Move pr_* debug macros into debug object 2014-07-17 12:58:39 -03:00
builtin-help.c perf help: Use strerror_r instead of strerror 2014-08-15 13:08:26 -03:00
builtin-inject.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-kmem.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-kvm.c perf kvm: Use strerror_r instead of strerror 2014-08-15 13:08:14 -03:00
builtin-list.c perf list: Add usage 2013-11-05 14:26:41 -03:00
builtin-lock.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-mem.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-probe.c perf probe: Make error messages thread-safe 2014-08-15 10:56:53 -03:00
builtin-record.c perf record: Use strerror_r instead of strerror 2014-08-15 13:07:14 -03:00
builtin-report.c perf report: Set proper sort__mode for the branch option 2014-08-13 17:13:48 -03:00
builtin-sched.c perf sched: Use strerror_r instead of strerror 2014-08-15 13:07:47 -03:00
builtin-script.c perf scripting: Add 'flush' callback to scripting API 2014-08-22 13:12:11 -03:00
builtin-stat.c perf stat: Use strerror_r instead of strerror 2014-08-15 13:08:40 -03:00
builtin-timechart.c perf tools: Check recorded kernel version when finding vmlinux 2014-08-13 16:42:21 -03:00
builtin-top.c perf top: Use strerror_r instead of strerror 2014-08-15 13:05:00 -03:00
builtin-trace.c perf trace: Use strerror_r instead of strerror 2014-08-15 13:06:28 -03:00
builtin.h perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
command-list.txt perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
CREDITS
design.txt perf tools: Update some code references in design.txt 2014-03-18 18:17:06 -03:00
Makefile perf tools: Add 'build-test' make target 2014-01-16 16:26:26 -03:00
Makefile.perf perf tests: Add a test for tracking with sched_switch 2014-08-22 13:10:35 -03:00
MANIFEST perf kvm: Add stat support on s390 2014-07-16 17:57:33 -03:00
perf-archive.sh
perf-completion.sh perf sched: Introduce --list-cmds for use by scripts 2014-04-16 17:16:05 +02:00
perf-sys.h perf tools: Allow to use cpuinfo on s390 2014-07-07 16:55:24 -03:00
perf.c perf: Use strerror_r instead of strerror 2014-08-15 10:54:29 -03:00
perf.h perf tools: Move ACCESS_ONCE from perf.h header 2014-05-05 17:49:07 +02:00