diff options
author | Jiri Olsa <jolsa@redhat.com> | 2016-01-07 14:30:22 +0100 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-01-08 14:17:45 -0300 |
commit | 5c0cf22477eaa890beeb4bc3554e5bebbea4b007 (patch) | |
tree | 024895ae125ab79860fba29e39cc3b9d37399711 | |
parent | 0ba98149f8c8b6b2ba36be9938afb731fa719004 (diff) | |
download | op-kernel-dev-5c0cf22477eaa890beeb4bc3554e5bebbea4b007.zip op-kernel-dev-5c0cf22477eaa890beeb4bc3554e5bebbea4b007.tar.gz |
perf record: Store data mmaps for dwarf unwind
Currently we don't synthesize data mmap by default. It depends on -d
option, that enables data address sampling.
But we've seen cases (softice) where DWARF unwinder went through non
executable mmaps, which we need to lookup in MAP__VARIABLE tree.
Making data mmaps to be synthesized for dwarf unwind as well.
Reported-by: Noel Grandin <noelgrandin@gmail.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20160107133022.GA32115@krava.brq.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/builtin-record.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 9c5cdc2c4..dc4e0ad 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -815,8 +815,12 @@ int record_parse_callchain_opt(const struct option *opt, } ret = parse_callchain_record_opt(arg, &callchain_param); - if (!ret) + if (!ret) { + /* Enable data address sampling for DWARF unwind. */ + if (callchain_param.record_mode == CALLCHAIN_DWARF) + record->sample_address = true; callchain_debug(); + } return ret; } |