OSDN Git Service

perf maps: Lookup maps in both intitial mountns and inner mountns.
authorKrister Johansen <kjlx@templeofstupid.com>
Thu, 6 Jul 2017 01:48:09 +0000 (18:48 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 19 Jul 2017 02:14:09 +0000 (23:14 -0300)
commitbf2e710b3cb8445c052f2ff50b4875a2523bb279
tree404a86734bb7b7275638b1d5c7a49a136d6e4766
parent843ff37bb59edbe51d64e77ba1b3245a15a4dd9f
perf maps: Lookup maps in both intitial mountns and inner mountns.

If a process is in a mountns and has symbols in /tmp/perf-<pid>.map,
look first in the namespace using the tgid for the pidns that the
process might be in.  If the map isn't found there, try looking in the
mountns where perf is running, and use the tgid that's appropriate for
perf's pid namespace.  If all else fails, use the original pid.

This allows us to locate a symbol map file in the mount namespace, if it
was generated there.  However, we also try the tool's /tmp in case it's
there instead.

Signed-off-by: Krister Johansen <kjlx@templeofstupid.com>
Tested-by: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/1499305693-1599-3-git-send-email-kjlx@templeofstupid.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/machine.c
tools/perf/util/map.c
tools/perf/util/map.h
tools/perf/util/namespaces.c
tools/perf/util/namespaces.h
tools/perf/util/symbol.c