From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Hemant Kumar <hemant@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, srikar@linux.vnet.ibm.com,
peterz@infradead.org, oleg@redhat.com,
hegdevasant@linux.vnet.ibm.com, mingo@redhat.com,
anton@redhat.com, systemtap@sourceware.org, namhyung@kernel.org,
aravinda@linux.vnet.ibm.com, penberg@iki.fi
Subject: Re: [PATCH v3 5/5] perf/sdt: Add support to perf record to trace SDT events
Date: Wed, 22 Oct 2014 15:45:38 +0900 [thread overview]
Message-ID: <54475292.20409@hitachi.com> (raw)
In-Reply-To: <20141010105914.15506.84827.stgit@hemant-fedora>
Hi Hemant,
(2014/10/10 19:59), Hemant Kumar wrote:
> The SDT events are already stored in a cache file
> (/var/cache/perf/perf-sdt-file.cache).
Please describe what this patch does at first.
> Although the file_hash table helps in addition or deletion of SDT events from the
> cache, its not of much use when it comes to probing the actual SDT event,
> because the key to this hash list is a file name and not the SDT event name
> (which is given as an argument to perf record). So, we won't be able to hash
> into it.
>
> To avoid this problem, we can create another hash list "event_hash" list which
> will be maintained along with the file_hash list.
> Whenever a user invokes 'perf record -e %provider:event, perf should initialize
> the event_hash list and the file_hash list.
> The key to event_hash list is calculated from the event name and its
> provider name.
>
> event_hash sdt_note
> |---------| ----------------
> | | | file_ptr |==> container file_sdt_ent
> key = 129 =>| hlist ==|===|=> event_list=|==> to sdt notes hashed to
> | | | name | same entry
> |---------| | provider |
> | | | note_list==|==> to other notes in the
> key = 130 =>| hlist | --------------- same file
> |---------|
>
> The entry at that key in event_hash contains a list of SDT notes hashed to the
> same entry. It compares the name and provider to see if that is the SDT note we
> are looking for. If yes, find out the file that contains this SDT note. There is
> a file_ptr pointer embedded in this note which points to the struct file_sdt_ent
> contained in the file_hash. From "file_sdt_ent" we will find out the file name.
> Convert this sdt note into a perf event and then write this into uprobe_events
> file to be able to record the event.
> Then, corresponding entries are added to uprobe_events file for
> the SDT events.
> After recording is done, these events are silently deleted from uprobe_events
> file. The uprobe_events file is present in debugfs/tracing directory.
>
> To support the addition and deletion of SDT events to/from uprobe_events
> file, a record_sdt struct is maintained which has the event data.
OK, I have some comments on this.
> An example usage:
>
> # ./perf record -e %user_app:fun_start -aR /home/user_app
At first, I'd like to add SDT support for adding probes too, like below;
./perf probe -a '%user_app:fun_start $vars'
So, maybe we don't need to remove the SDT-based events silently, nor
hide it from users. I think you just need to add new sdt events and
verify it if there is.
BTW, for silently adding event, I'll introduce --quite(-q) option for
perf probe. So you'll just need to set silent flag with that.
Thank you,
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
next prev parent reply other threads:[~2014-10-22 6:45 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-10 10:57 [PATCH v3 0/5] perf/sdt: SDT events listing/probing Hemant Kumar
2014-10-10 10:57 ` [PATCH v3 1/5] perf/sdt: ELF support for SDT Hemant Kumar
2014-10-22 2:39 ` Namhyung Kim
2014-10-22 10:26 ` Hemant Kumar
2014-10-10 10:58 ` [PATCH v3 2/5] perf/sdt: Add SDT events into a cache Hemant Kumar
2014-10-22 4:41 ` Namhyung Kim
2014-10-24 11:28 ` Hemant Kumar
2014-10-23 11:51 ` Masami Hiramatsu
2014-10-10 10:58 ` [PATCH v3 3/5] perf/sdt: Show SDT cache contents Hemant Kumar
2014-10-22 4:48 ` Namhyung Kim
2014-10-10 10:59 ` [PATCH v3 4/5] perf/sdt: Delete SDT events from cache Hemant Kumar
2014-10-10 10:59 ` [PATCH v3 5/5] perf/sdt: Add support to perf record to trace SDT events Hemant Kumar
2014-10-22 6:45 ` Masami Hiramatsu [this message]
2014-10-22 8:20 ` Hemant Kumar
2014-10-22 9:41 ` Masami Hiramatsu
2014-10-23 5:31 ` Hemant Kumar
2014-10-23 5:54 ` Srikar Dronamraju
2014-10-23 6:33 ` Masami Hiramatsu
2014-10-23 8:21 ` Namhyung Kim
2014-10-23 8:57 ` Masami Hiramatsu
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=54475292.20409@hitachi.com \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=anton@redhat.com \
--cc=aravinda@linux.vnet.ibm.com \
--cc=hegdevasant@linux.vnet.ibm.com \
--cc=hemant@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=oleg@redhat.com \
--cc=penberg@iki.fi \
--cc=peterz@infradead.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=systemtap@sourceware.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