From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Jiri Olsa <jolsa@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
kernel-team@lge.com, Masami Hiramatsu <mhiramat@kernel.org>,
Andi Kleen <andi@firstfloor.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Wang Nan <wangnan0@huawei.com>
Subject: [PATCH/RFC 8/9] perf record: Not use kcore by default
Date: Fri, 23 Jun 2017 14:48:26 +0900 [thread overview]
Message-ID: <20170623054827.3828-9-namhyung@kernel.org> (raw)
In-Reply-To: <20170623054827.3828-1-namhyung@kernel.org>
Change perf record not to use /proc/kcore by default. This is for
kernel developers who use qemu or kvmtools to test their kernels. On
those environment, kernel image was loaded directly by qemu and the
vmlinux might not be available on the guest.
At the last stage of perf record, it finds hit DSOs to mark them to
record the build-ids. During this process, it tries to load kernel maps
and falls back to use kallsyms with kcore. But dso__load_kcore()
removes old mappings so all module info would disappear.
I'm not sure this is intended but it'd be good if it could keep the info
and use it for build-id cache. Add --use-kcore option to request it
explicitly (like in perf-with-kcore).
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/Documentation/perf-record.txt | 3 +++
tools/perf/builtin-record.c | 5 +++++
tools/perf/perf-with-kcore.sh | 1 +
3 files changed, 9 insertions(+)
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
index b0e9e921d534..eb2f5fb90534 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -477,6 +477,9 @@ config terms. For example: 'cycles/overwrite/' and 'instructions/no-overwrite/'.
Implies --tail-synthesize.
+--use-kcore::
+Use /proc/kcore for symbols and object code reading
+
SEE ALSO
--------
linkperf:perf-stat[1], linkperf:perf-list[1]
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index ee7d0a82ccd0..a6a6cb56fdf5 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -1669,6 +1669,8 @@ static struct option __record_options[] = {
"signal"),
OPT_BOOLEAN(0, "dry-run", &dry_run,
"Parse options then exit"),
+ OPT_BOOLEAN(0, "use-kcore", &symbol_conf.use_kcore,
+ "Use /proc/kcore for object code"),
OPT_END()
};
@@ -1705,6 +1707,9 @@ int cmd_record(int argc, const char **argv)
if (rec->evlist == NULL)
return -ENOMEM;
+ /* default to not use kcore, user can change it by --use-kcore option */
+ symbol_conf.use_kcore = false;
+
err = perf_config(perf_record_config, rec);
if (err)
return err;
diff --git a/tools/perf/perf-with-kcore.sh b/tools/perf/perf-with-kcore.sh
index 7e47a7cbc195..4efde3e577dd 100644
--- a/tools/perf/perf-with-kcore.sh
+++ b/tools/perf/perf-with-kcore.sh
@@ -233,6 +233,7 @@ fi
case "$PERF_SUB_COMMAND" in
"record")
+ PERF_OPTIONS+=("--use-kcore")
while [ "$1" != "--" ] ; do
PERF_OPTIONS+=("$1")
shift || break
--
2.13.1
next prev parent reply other threads:[~2017-06-23 5:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-23 5:48 [PATCHSET/RFC 0/9] perf tools: Support out-of-tree modules Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 1/9] perf symbols: Use absolute address to fixup map address Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 2/9] perf tools: Remove duplicate code Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 3/9] perf symbols: Discard symbols in kallsyms for loaded modules Namhyung Kim
2017-06-23 13:51 ` Arnaldo Carvalho de Melo
2017-06-25 13:47 ` Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 4/9] perf symbols: Load kernel module symbols ASAP Namhyung Kim
2017-06-23 14:26 ` Arnaldo Carvalho de Melo
2017-06-25 14:17 ` Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 5/9] perf symbols: Fixup the end address of kernel map properly Namhyung Kim
2017-06-23 14:27 ` Arnaldo Carvalho de Melo
2017-06-25 14:34 ` Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 6/9] perf symbols: Use already loaded module dso when loading kcore Namhyung Kim
2017-06-23 13:55 ` Arnaldo Carvalho de Melo
2017-06-25 13:54 ` Namhyung Kim
2017-06-23 5:48 ` [PATCH/RFC 7/9] perf tools: Add symbol_conf.use_kcore Namhyung Kim
2017-06-23 5:48 ` Namhyung Kim [this message]
2017-06-23 5:48 ` [PATCH/RFC 9/9] perf record: Add --module-dir option Namhyung Kim
2017-06-23 14:45 ` Arnaldo Carvalho de Melo
2017-06-25 14:43 ` 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=20170623054827.3828-9-namhyung@kernel.org \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=andi@firstfloor.org \
--cc=jolsa@kernel.org \
--cc=kernel-team@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=wangnan0@huawei.com \
/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®