From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: srikar@linux.vnet.ibm.com, Peter Zijlstra <peterz@infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Brendan Gregg <brendan.gregg@gmail.com>,
yrl.pp-manager.tt@hitachi.com, namhyung@kernel.org,
Hemant Kumar <hemant@linux.vnet.ibm.com>,
Ingo Molnar <mingo@kernel.org>
Subject: [PATCH perf/core 0/6] perf-probe: Bugfix and add new options for cache
Date: Fri, 31 Oct 2014 14:51:29 -0400 [thread overview]
Message-ID: <20141031185128.27889.32747.stgit@localhost.localdomain> (raw)
Hi,
Here is a sereis of patches for enabling "event cache" feature
to perf probe. Brendan gives me this cool idea, thanks! :)
In this series, I added following options/features;
- --output option
We can save the probe definition command for given probe-event
instead of setting up the local tracing/kprobe_events.
- --no-inlines option
We can avoid searching the inline functions in debuginfo. Usually
useful with wildcards since the wildcards will hit a huge amount
of probe-points.
- $params special probe argument
$params is expanded to function parameters only, no locally defined
variables. This is useful for function-call tracing.
- wildcard support for function name
Wildcard support is the key feature for this idea. Now we can use
'*foo*' for function name to define the probe-point.
So by using all of them, we can make an "event cache" file on all
functions (except for inlined functions) as below.
# perf probe --max-probes=100000 --no-inlines -a '* $params' -o event.cache
builds "event.cache" file in which event settings for
all function entries, like below;
p:probe/reset_early_page_tables _text+12980741
p:probe/copy_bootdata _text+12980830 real_mode_data=%di:u64
p:probe/exit_amd_microcode _text+14692680
p:probe/early_make_pgtable _text+12981274 address=%di:u64
p:probe/x86_64_start_reservations _text+12981700 real_mode_data=%di:u64
p:probe/x86_64_start_kernel _text+12981744 real_mode_data=%di:u64
p:probe/reserve_ebda_region _text+12982117
This event.cache file will be big (but much smaller than native
debuginfo :) ) if your kernel have many option embedded.
Anyway, you can compress it too.
# wc -l event.cache
33813 event.cache
# ls -sh event.cache
2.3M event.cache
# ls -sh event.cache.gz
464K event.cache.gz
For setting up a probe event, you can grep the function name
and write it to tracing/kprobe_events, as below;
# zcat event.cache.gz | \
grep probe/vfs_symlink > /sys/kernel/debug/tracing/kprobe_events
This can be applied for the remote machine only if the machine
runs on completely same kernel binary. Perhaps, we need some
helper tool to check it.
Thank you,
---
Masami Hiramatsu (6):
[BUGFIX] perf-probe: Fix to handle optimized not-inlined but has no instance
[DOC] perf-probe: Update perf-probe document
perf-probe: Add --output option to write commands in a standard file
perf-probe: Add --no-inlines option to avoid searching inline functions
perf-probe: Support $params special probe argument
perf-probe: Support glob wildcards for function name
tools/perf/Documentation/perf-probe.txt | 25 ++++++++++
tools/perf/builtin-probe.c | 32 +++++++++++++
tools/perf/util/dwarf-aux.c | 31 +++++++++++++
tools/perf/util/dwarf-aux.h | 6 +++
tools/perf/util/probe-event.c | 73 +++++++++++++++++++++++--------
tools/perf/util/probe-event.h | 4 +-
tools/perf/util/probe-finder.c | 74 +++++++++++++++++++------------
tools/perf/util/probe-finder.h | 6 ++-
tools/perf/util/util.h | 4 ++
9 files changed, 202 insertions(+), 53 deletions(-)
--
Masami HIRAMATSU
Software Platform Research Dpt. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
next reply other threads:[~2014-10-31 10:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-31 18:51 Masami Hiramatsu [this message]
2014-10-31 12:13 ` [PATCH perf/core 0/6] perf-probe: Bugfix and add new options for cache Arnaldo Carvalho de Melo
2014-11-03 12:11 ` Masami Hiramatsu
2014-11-03 16:19 ` Arnaldo Carvalho de Melo
2014-11-04 4:36 ` Masami Hiramatsu
2014-11-04 14:38 ` Arnaldo Carvalho de Melo
2014-11-04 16:22 ` Masami Hiramatsu
2014-11-05 6:23 ` Namhyung Kim
2014-11-05 8:46 ` Masami Hiramatsu
2014-11-05 13:04 ` Arnaldo Carvalho de Melo
2014-11-06 10:15 ` Masami Hiramatsu
2014-11-04 5:02 ` Namhyung Kim
2014-10-31 18:51 ` [PATCH perf/core 1/6] [BUGFIX] perf-probe: Fix to handle optimized not-inlined but has no instance Masami Hiramatsu
2014-10-31 18:51 ` [PATCH perf/core 2/6] [DOC] perf-probe: Update perf-probe document Masami Hiramatsu
2014-10-31 18:51 ` [PATCH perf/core 3/6] perf-probe: Add --output option to write commands in a standard file Masami Hiramatsu
2014-10-31 18:51 ` [PATCH perf/core 4/6] perf-probe: Add --no-inlines option to avoid searching inline functions Masami Hiramatsu
2014-10-31 18:52 ` [PATCH perf/core 5/6] perf-probe: Support $params special probe argument Masami Hiramatsu
2014-10-31 18:52 ` [PATCH perf/core 6/6] perf-probe: Support glob wildcards for function name Masami Hiramatsu
2014-11-04 3:14 ` [PATCH perf/core 0/6] perf-probe: Bugfix and add new options for cache Namhyung Kim
2014-11-04 5:44 ` Masami Hiramatsu
2014-11-05 6:09 ` 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=20141031185128.27889.32747.stgit@localhost.localdomain \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=acme@kernel.org \
--cc=brendan.gregg@gmail.com \
--cc=hemant@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=yrl.pp-manager.tt@hitachi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.