From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Ingo Molnar <mingo@kernel.org>, Paul Mackerras <paulus@samba.org>,
Namhyung Kim <namhyung.kim@lge.com>,
Namhyung Kim <namhyung@kernel.org>,
LKML <linux-kernel@vger.kernel.org>, Jiri Olsa <jolsa@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
David Ahern <dsahern@gmail.com>,
Stephane Eranian <eranian@google.com>
Subject: [PATCHSET 0/8] perf tools: Fix build-id matching on vmlinux (v6)
Date: Tue, 4 Nov 2014 10:14:26 +0900 [thread overview]
Message-ID: <1415063674-17206-1-git-send-email-namhyung@kernel.org> (raw)
Hello,
This patchset addresses possible problem on kernel symbol matching.
Since commit 5b7ba82a7591 ("perf symbols: Load kernel maps before
using"), when perf record process samples to construct build-id table,
it loads kernel map and it replaces dso->long_name. But perf report
doesn't know about name other than [kernel.kallsyms] it failed to find
existing kernel dso and falls back to running kernel's kallsyms.
So it's possible to report incorrect symbols for kernel functions if
it runs on a different kernel:
Before:
$ perf report
# Children Self Command Shared Object Symbol
# ........ ........ ....... ................. ...............................
#
72.15% 0.00% swapper [kernel.kallsyms] [k] set_curr_task_rt
72.15% 0.00% swapper [kernel.kallsyms] [k] native_calibrate_tsc
72.15% 0.00% swapper [kernel.kallsyms] [k] tsc_refine_calibration_work
71.87% 71.87% swapper [kernel.kallsyms] [k] module_finalize
...
After (for the same perf.data):
72.15% 0.00% swapper [kernel.vmlinux] [k] cpu_startup_entry
72.15% 0.00% swapper [kernel.vmlinux] [k] arch_cpu_idle
72.15% 0.00% swapper [kernel.vmlinux] [k] default_idle
71.87% 71.87% swapper [kernel.vmlinux] [k] native_safe_halt
In this patch, it's now changed to try to search a kernel dso in the
existing dso list which was constructed during build-id table parsing
so it'll always have a build-id. If not found, search "[kernel.kallsyms]".
The patch 1-2 are to support module compression as some distro
(e.g. Arch) already does it. The patch 3-5 are cleanup of build-id
handling functions. The patch 6-7 are the main change of this series
and finally patch 8 is just for suggestion which can be squashed into
the previous patch or simply dropped.
* changes from v5)
- keep dsos__hit_all() in util/build-id.c (Adrian)
- fix bug in is_kernel_module function (Jiri)
- add missing zlib test to test-all.c (Jiri)
- move disable_buildid_cache function also
You can get it on 'perf/vmlinux-v6' branch in my tree:
git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
Any comments are welcome, thanks
Namhyung
Cc: Adrian Hunter <adrian.hunter@intel.com>
Namhyung Kim (8):
perf tools: Preparation for compressed kernel module support
perf tools: Add gzip decompression support for kernel module
perf tools: Rename dsos__write_buildid_table()
perf build-id: Move build-id related functions to util/build-id.c
perf tools: Move disable_buildid_cache() to util/build-id.c
perf record: Do not save pathname in ./debug/.build-id directory for
vmlinux
perf tools: Fix build-id matching on vmlinux
perf tools: Make vmlinux short name more like kallsyms short name
tools/perf/Makefile.perf | 7 +
tools/perf/builtin-record.c | 11 +
tools/perf/config/Makefile | 15 +-
tools/perf/config/feature-checks/Makefile | 6 +-
tools/perf/config/feature-checks/test-all.c | 5 +
tools/perf/config/feature-checks/test-zlib.c | 9 +
tools/perf/util/build-id.c | 345 ++++++++++++++++++++++++++
tools/perf/util/build-id.h | 12 +
tools/perf/util/dso.c | 71 ++++++
tools/perf/util/dso.h | 7 +
tools/perf/util/header.c | 353 +--------------------------
tools/perf/util/header.h | 8 +-
tools/perf/util/machine.c | 38 ++-
tools/perf/util/symbol-elf.c | 35 ++-
tools/perf/util/symbol.c | 19 +-
tools/perf/util/symbol.h | 1 +
tools/perf/util/util.h | 6 +-
tools/perf/util/zlib.c | 78 ++++++
18 files changed, 658 insertions(+), 368 deletions(-)
create mode 100644 tools/perf/config/feature-checks/test-zlib.c
create mode 100644 tools/perf/util/zlib.c
--
2.1.2
next reply other threads:[~2014-11-04 1:17 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-04 1:14 Namhyung Kim [this message]
2014-11-04 1:14 ` [PATCH 1/8] perf tools: Preparation for compressed kernel module support Namhyung Kim
2014-11-04 10:58 ` Jiri Olsa
2014-11-07 5:29 ` [tip:perf/core] perf symbols: " tip-bot for Namhyung Kim
2014-11-04 1:14 ` [PATCH 2/8] perf tools: Add gzip decompression support for kernel module Namhyung Kim
2014-11-04 11:00 ` Jiri Olsa
2014-11-04 13:42 ` Arnaldo Carvalho de Melo
2014-11-05 2:59 ` Namhyung Kim
2014-11-07 5:30 ` [tip:perf/core] " tip-bot for Namhyung Kim
2014-11-04 14:15 ` [PATCH 2/8] " Arnaldo Carvalho de Melo
2014-11-05 3:04 ` Namhyung Kim
2014-11-04 1:14 ` [PATCH 3/8] perf tools: Rename dsos__write_buildid_table() Namhyung Kim
2014-11-07 5:30 ` [tip:perf/core] perf build-id: " tip-bot for Namhyung Kim
2014-11-04 1:14 ` [PATCH 4/8] perf build-id: Move build-id related functions to util/build-id.c Namhyung Kim
2014-11-07 5:30 ` [tip:perf/core] " tip-bot for Namhyung Kim
2014-11-04 1:14 ` [PATCH 5/8] perf tools: Move disable_buildid_cache() " Namhyung Kim
2014-11-04 1:14 ` [PATCH 6/8] perf record: Do not save pathname in ./debug/.build-id directory for vmlinux Namhyung Kim
2014-11-04 13:29 ` Arnaldo Carvalho de Melo
2014-11-05 2:54 ` Namhyung Kim
2014-11-07 5:30 ` [tip:perf/core] perf record: Do not save pathname in ./debug/ .build-id " tip-bot for Namhyung Kim
2014-11-04 1:14 ` [PATCH 7/8] perf tools: Fix build-id matching on vmlinux Namhyung Kim
2014-11-07 5:31 ` [tip:perf/core] " tip-bot for Namhyung Kim
2014-11-04 1:14 ` [PATCH 8/8] perf tools: Make vmlinux short name more like kallsyms short name Namhyung Kim
2014-11-07 5:31 ` [tip:perf/core] " tip-bot for Namhyung Kim
-- strict thread matches above, loose matches on Subject: below --
2014-11-03 7:27 [PATCHSET 0/8] perf tools: Fix build-id matching on vmlinux (v5) Namhyung Kim
2014-11-03 7:27 ` [PATCH 1/8] perf tools: Preparation for compressed kernel module support Namhyung Kim
2014-11-03 13:51 ` Jiri Olsa
2014-11-03 15:01 ` Namhyung Kim
2014-11-03 7:27 ` [PATCH 2/8] perf tools: Add gzip decompression support for kernel module Namhyung Kim
2014-11-03 13:54 ` Jiri Olsa
2014-11-03 15:02 ` Namhyung Kim
2014-11-03 7:27 ` [PATCH 3/8] perf tools: Get rid of unused dsos__hit_all() Namhyung Kim
2014-11-03 7:35 ` Adrian Hunter
2014-11-03 7:39 ` Namhyung Kim
2014-11-03 7:51 ` Adrian Hunter
2014-11-03 7:27 ` [PATCH 4/8] perf tools: Rename dsos__write_buildid_table() Namhyung Kim
2014-11-03 7:27 ` [PATCH 5/8] perf build-id: Move build-id related functions to util/build-id.c Namhyung Kim
2014-11-03 7:27 ` [PATCH 6/8] perf record: Do not save pathname in ./debug/.build-id directory for vmlinux Namhyung Kim
2014-11-03 7:27 ` [PATCH 7/8] perf tools: Fix build-id matching on vmlinux Namhyung Kim
2014-11-03 7:27 ` [PATCH 8/8] perf tools: Make vmlinux short name more like kallsyms short name Namhyung Kim
2014-09-22 8:04 [PATCH v4] perf tools: Fix build-id matching on vmlinux Namhyung Kim
2014-09-24 7:33 ` Ingo Molnar
2014-09-29 4:45 ` Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1415063674-17206-1-git-send-email-namhyung@kernel.org \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=dsahern@gmail.com \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®