diff options
author | Namhyung Kim <namhyung@kernel.org> | 2022-02-02 10:08:27 +0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2022-02-10 21:33:51 +0300 |
commit | 75d48c56703dcce45cf4d7262dbf7113c5e6607f (patch) | |
tree | ef09fd1186555b4cf789721a25fd242adc1b28bf /tools/perf/builtin-inject.c | |
parent | 67fd18924647bdcafab18c2945a79ddea73653de (diff) | |
download | linux-75d48c56703dcce45cf4d7262dbf7113c5e6607f.tar.xz |
perf inject: Try chroot directory when reading build-id
When reading build-id from a DSO, it should consider if it's from a
chroot task. In that case, the path is different so it needs to prepend
the root directory to access the file correctly.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20220202070828.143303-4-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-inject.c')
-rw-r--r-- | tools/perf/builtin-inject.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index fbf43a454cba..3be581abbdb6 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -25,6 +25,7 @@ #include "util/synthetic-events.h" #include "util/thread.h" #include "util/namespaces.h" +#include "util/util.h" #include <linux/err.h> #include <subcmd/parse-options.h> @@ -550,6 +551,15 @@ static int dso__read_build_id(struct dso *dso) nsinfo__mountns_enter(dso->nsinfo, &nsc); if (filename__read_build_id(dso->long_name, &dso->bid) > 0) dso->has_build_id = true; + else if (dso->nsinfo) { + char *new_name; + + new_name = filename_with_chroot(dso->nsinfo->pid, + dso->long_name); + if (new_name && filename__read_build_id(new_name, &dso->bid) > 0) + dso->has_build_id = true; + free(new_name); + } nsinfo__mountns_exit(&nsc); return dso->has_build_id ? 0 : -1; |