From: Namhyung Kim <namhyung@kernel.org>
To: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Hemant Kumar <hemant@linux.vnet.ibm.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
linux-kernel@vger.kernel.org, srikar@linux.vnet.ibm.com,
peterz@infradead.org, oleg@redhat.com,
hegdevasant@linux.vnet.ibm.com, mingo@redhat.com,
systemtap@sourceware.org, aravinda@linux.vnet.ibm.com,
penberg@iki.fi, brendan.d.gregg@gmail.com,
"yrl.pp-manager.tt@hitachi.com" <yrl.pp-manager.tt@hitachi.com>
Subject: Re: [RFC] perf-cache command interface design
Date: Fri, 07 Nov 2014 23:43:27 +0900 [thread overview]
Message-ID: <1415371407.1648.37.camel@leonhard> (raw)
In-Reply-To: <545C80F4.4020905@hitachi.com>
Hi Masami,
2014-11-07 (금), 17:21 +0900, Masami Hiramatsu:
> Hello,
>
> Here, I've tried to describe my idea of perf-cache subcommand interface.
> It is just a design review, not implemented yet :)
> Please give me your comments/ideas!
>
> Command-line Synopsis
> =====================
>
> Current "perf buildid-cache [options]" are directly mapped to
> "perf cache --buildid [options]".
>
> And adding --sdt for managing SDT caches as below.
>
> Add or update SDT events in <FILES>
> perf cache --sdt --add|--update <FILES>
>
> Remove all SDT events for <FILES>
> perf cache --sdt --remove <FILES>
>
> List all SDT events
> perf cache --sdt --list
>
> And --probes for managing probe-caches as below.
>
> Add new probe-cache entries for kernel, <PATH> or <MOD>.
> perf cache --probe [--exec <PATH>|--module <MOD>] --add <SPEC>
>
> Delete existing probe-cache entries for kernel, <PATH> or/and <BUILDID>.
> perf cache --probe --del [<GROUP>:]<EVENT>[@<PATH>][#<BUILDID>]
>
> Or remove all entires for given FILES
> perf cache --probe --remove <FILES>
>
> List the probe caches(including SDT) for kernel, <PATH>, or/and <BUILDID>.
> perf cache --probe --list [@<PATH>][#<BUILDID>]
>
> Query the probe definitions.
> perf cache --probe --query [<GROUP>:]<EVENT>[@<PATH>][#<BUILDID>]
>
> Note that --probes also can be used for managing SDT events, which has % prefix
> e.g.
> Add all SDT events for <PATH>
> perf cache --probe --exec <PATH> --add '%*:*'
>
> Remove some SDT events for <PATH>
> perf cache --probe --del '%some:events@<PATH>'
>
> Or remove all SDT events for <BUILDID>
> perf cache --probe --del '%*:*#<BUILDID>'
I'd prefer sub-command to option for this mandatory (and exclusive)
behavior. What about like this?
perf cache kprobe add [-m <module>] <spec> [<spec>...]
perf cache kprobe del [<group>:]<event> [<event>...]
perf cache kprobe list [-m <module>]
perf cache uprobe add -x <path> <spec> [<spec>...]
perf cache uprobe del [<group>:]<event> [<event>...]
perf cache uprobe list [-x <path>]
perf cache sdt [add|del|update] <file> [<file>...]
perf cache sdt list [-b <build-id>] [<file>...]
>
>
> File Format
> ===========
> All the cache files are placed under ~/.debug/ by default.
> The paths of buildid cache of binary/symbols are not changed.
>
> The SDT/probe caches are placed under the ~/.debug/.probes/path/to/bin/bu/ildid
> and that is linked to ~/.debug/.probes/.buildid/bu/ildid
> # To avoid conflict with files under /probes/*, I picked up .probes/.
However, to be used with perf record, we need a way to find a matching
probe cache file from a event name (or group/provider name, preferably).
What about having something like below:
$ cat ~/.debug/.probes/event.map
PROVIDER1 /path/to/some/where
PROVIDER2 /path/to/other/place
When perf record see a cached event used, it first searches its
provider/group name from the event.map file. And then read bulid-id
from the matching file on the path and finally find a cached event
definition from ~/.debug/.probes/.buildid/bu/ildid file.
>
> This SDT/probe caches contain probe-definitions as following format.
> ----
> #buildid:BUILDID
> #path:PATH
> p:%PROVIDER/EVENT PATH:OFFSET [ARGS]
It seems PATH is redundant and we don't need to repeat it everyline
IMHO. Since it need post-processing anyway, maybe it's better to just
make it simpler, like:
%:PROVIDER/EVENT OFFSET [ARGS]
Thanks,
Namhyung
> p:PROBE/EVENT _text+OFFSET [ARGS]
> ----
>
> Normal probes and SDT cache entries can be mixed in a cache file, we'll
> load all the entries and filter by % prefixes.
>
>
> Thank you,
>
next prev parent reply other threads:[~2014-11-07 14:43 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-02 10:53 [PATCH v4 0/5] perf/sdt: SDT events listing/probing Hemant Kumar
2014-11-02 10:54 ` [PATCH v4 1/5] perf/sdt: ELF support for SDT Hemant Kumar
2014-11-02 10:54 ` [PATCH v4 2/5] perf/sdt: Add SDT events into a cache Hemant Kumar
2014-11-02 10:55 ` [PATCH v4 3/5] perf/sdt: Show SDT cache contents Hemant Kumar
2014-11-02 10:55 ` [PATCH v4 4/5] perf/sdt: Delete SDT events from cache Hemant Kumar
2014-11-02 10:56 ` [PATCH v4 5/5] perf/sdt: Add support to perf record to trace SDT events Hemant Kumar
2014-11-04 7:38 ` Namhyung Kim
2014-11-04 8:06 ` Hemant Kumar
2014-11-04 12:56 ` Masami Hiramatsu
[not found] ` <5459BD3E.7010804@linux.vnet.ibm.com>
2014-11-05 6:50 ` Hemant Kumar
2014-11-05 9:07 ` Masami Hiramatsu
2014-11-05 13:28 ` Arnaldo Carvalho de Melo
2014-11-05 7:06 ` Namhyung Kim
2014-11-05 9:05 ` Masami Hiramatsu
2014-11-06 2:15 ` Josh Stone
2014-11-06 5:33 ` Masami Hiramatsu
2014-11-06 7:06 ` Hemant Kumar
2014-11-06 14:56 ` Masami Hiramatsu
2014-11-07 8:21 ` [RFC] perf-cache command interface design Masami Hiramatsu
2014-11-07 8:42 ` Peter Zijlstra
2014-11-07 13:57 ` [PATCH RESEND 1/2] perf tools: Move disable_buildid_cache() to util/build-id.c Namhyung Kim
2014-11-07 13:57 ` [PATCH 2/2] perf tools: Add record.use-buildid-cache config option Namhyung Kim
2014-11-20 7:36 ` [tip:perf/core] perf build-id: Move disable_buildid_cache() to util/build-id.c tip-bot for Namhyung Kim
2014-11-07 15:16 ` [RFC] perf-cache command interface design David Ahern
2014-11-07 15:33 ` Arnaldo Carvalho de Melo
2014-11-07 10:51 ` Hemant Kumar
2014-11-08 4:15 ` Masami Hiramatsu
2014-11-07 14:38 ` Arnaldo Carvalho de Melo
2014-11-08 4:26 ` Masami Hiramatsu
2014-11-07 14:43 ` Namhyung Kim [this message]
2014-11-08 4:38 ` Masami Hiramatsu
2014-11-10 10:59 ` Masami Hiramatsu
2014-11-10 12:23 ` Arnaldo Carvalho de Melo
2014-11-11 6:53 ` Masami Hiramatsu
2014-11-11 13:10 ` Arnaldo Carvalho de Melo
2014-11-12 15:25 ` Masami Hiramatsu
2014-11-17 3:08 ` Namhyung Kim
2014-11-17 3:17 ` Masami Hiramatsu
2014-11-17 22:09 ` Masami Hiramatsu
2014-11-18 4:51 ` Namhyung Kim
2014-11-18 11:16 ` Masami Hiramatsu
2014-11-18 4:41 ` Namhyung Kim
2014-11-18 10:32 ` Masami Hiramatsu
2014-11-17 18:58 ` Arnaldo Carvalho de Melo
2014-11-18 4:45 ` Namhyung Kim
2014-11-10 12:05 ` Hagen Paul Pfeifer
2014-11-10 12:31 ` Arnaldo Carvalho de Melo
2014-11-10 12:50 ` Peter Zijlstra
2014-11-10 13:37 ` Hagen Paul Pfeifer
2014-11-05 18:23 ` [PATCH v4 5/5] perf/sdt: Add support to perf record to trace SDT events Hemant Kumar
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=1415371407.1648.37.camel@leonhard \
--to=namhyung@kernel.org \
--cc=acme@redhat.com \
--cc=aravinda@linux.vnet.ibm.com \
--cc=brendan.d.gregg@gmail.com \
--cc=hegdevasant@linux.vnet.ibm.com \
--cc=hemant@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@redhat.com \
--cc=oleg@redhat.com \
--cc=penberg@iki.fi \
--cc=peterz@infradead.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=systemtap@sourceware.org \
--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.