linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Cc: mingo@redhat.com, acme@kernel.org, brendan.d.gregg@gmail.com,
	peterz@infradead.org, alexander.shishkin@linux.intel.com,
	wangnan0@huawei.com, jolsa@kernel.org, ak@linux.intel.com,
	treeze.taeung@gmail.com, mathieu.poirier@linaro.org,
	hekuang@huawei.com, sukadev@linux.vnet.ibm.com,
	ananth@in.ibm.com, naveen.n.rao@linux.vnet.ibm.com,
	adrian.hunter@intel.com, linux-kernel@vger.kernel.org,
	hemant@linux.vnet.ibm.com
Subject: Re: [PATCH v5 0/7] perf/sdt: Directly record SDT events with 'perf record'
Date: Thu, 16 Mar 2017 18:51:40 +0900	[thread overview]
Message-ID: <20170316185140.a17b885479976d4be36349f4@kernel.org> (raw)
In-Reply-To: <20170314150658.7065-1-ravi.bangoria@linux.vnet.ibm.com>

On Tue, 14 Mar 2017 20:36:51 +0530
Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> wrote:

> All events from 'perf list', except SDT events, can be directly recorded
> with 'perf record'. But, the flow is little different for SDT events.
> Probe point for SDT event needs to be created using 'perf probe' before
> recording it using 'perf record'.
> 
> As suggested by Ingo[1], it's better to make this process simple by
> creating probe point automatically with 'perf record' for SDT events.
> 
> Features:
>   - Allow both 'perf probe' and 'perf record' on sdt events without
>     changing current functionality.
> 
>   - Event starting with 'sdt_' or '%' will be considered as SDT event.
> 
>   - Always prioritize events from uprobe_events by first checking if
>     event exists with exact name. If not found and user has used
>     pattern, again try to find pattern matching entries from
>     uprobe_events. If found use them. If not, lookup into probe-cache.
>     If events found from probe-cache, again check if any event exists
>     in uprobe_events by matching filepath+address, as it might exists
>     in uprobe_events but with different name. Reuse those events which
>     exists in uprobe_events and create new entries for missing one.
>     Also maintain list for new entries being created and at the end
>     of the session, delete them.
> 
>   - Show various warnings/hints to help user understand _which_ events
>     are being recorded and _why_. For ex,
> 
>     When multiple events of same name found and all are being recorded:
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_entry
>         Warning: Recording on 2 occurrences of sdt_libpthread:mutex_entry
> 
>     Events being reused from uprobe_events is listed as 'name addr@file'
>     followed by hint on how to delete them:
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_entry
>         Matching event(s) from uprobe_events:
>           sdt_libpthread:mutex_entry  0x9ddb@/usr/lib64/libpthread-2.24.so
>         Use 'perf probe -d <event>' to delete event(s).
> 
>     If number of events found from cache is not equal to number of events
>     being recorded:
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_entry
>         Warning: Found 2 events from probe-cache with name 'sdt_libpthread:mutex_entry'.
>                  Since 1 probe point already exists, recording only it.
>         Hint: Please use 'perf probe -d sdt_libpthread:mutex_entry' to allow record on all events.
> 
>   - If all events found from probe-cache are not present in uprobe_events,
>     and user has used pattern to specify event, perf will record only
>     those events which are present in uprobe_events. This is to make perf
>     semantics consistent across normal and SDT events. And If user has
>     not used pattern, perf will record all events found from probe-cache
>     by reusing name for existing one and adding entries for missing one.
>     For ex,
> 
>       $ sudo ./perf probe sdt_libpthread:mutex_release
>         Added new events:
>           sdt_libpthread:mutex_release (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>           sdt_libpthread:mutex_release_1 (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>           sdt_libpthread:mutex_release_2 (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>           sdt_libpthread:mutex_release_3 (on %mutex_release in /usr/lib64/libpthread-2.24.so)
>       $ sudo ./perf probe -d sdt_libpthread:mutex_release
>       $ sudo ./perf probe -d sdt_libpthread:mutex_release_2
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_release*
>         Warning: Recording on 2 occurrences of sdt_libpthread:mutex_release*
> 
>       $ sudo ./perf record -a -e sdt_libpthread:mutex_release
>         Warning: Recording on 4 occurrences of sdt_libpthread:mutex_release
> 
> Changes in v5:
>   - Patch 2/7 is new. New option introduced in this patch helps to pass
>     custome data from builtin-*.c to libperf.
> 
>   - All direct callbacks from libelf to builtin-record.c is removed.
>  
>   - Merged 2nd and 4th patch of v4 into patch 2 of v5.
> 
>   - Moved all functions from util/probe-file.c to util/probe-event.c
>     which operates on perf_probe_event.
> 
>   - Made free_sdt_list() static as it's only used inside util/probe-event.c.
> 
>   - Couple of other changes as Masami has suggested in v4 review.

Hi Ravi,
Could you also describe which patches are updated? It seems 1/7 is not
modified, correct?

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

  parent reply	other threads:[~2017-03-16  9:51 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-14 15:06 [PATCH v5 0/7] perf/sdt: Directly record SDT events with 'perf record' Ravi Bangoria
2017-03-14 15:06 ` [PATCH v5 1/7] perf/sdt: Introduce util func is_sdt_event() Ravi Bangoria
2017-03-16 16:34   ` [tip:perf/core] perf probe: " tip-bot for Ravi Bangoria
2017-03-14 15:06 ` [PATCH v5 2/7] perf tool: Add option macro OPT_CALLBACK_ARG Ravi Bangoria
2017-03-14 21:00   ` Arnaldo Carvalho de Melo
2017-03-14 15:06 ` [PATCH v5 3/7] perf/sdt: Directly record SDT events with 'perf record' Ravi Bangoria
2017-03-15 12:03   ` Jiri Olsa
2017-03-15 13:16     ` Arnaldo Carvalho de Melo
2017-03-15 13:49       ` Ravi Bangoria
2017-03-17  9:05   ` Masami Hiramatsu
2017-03-20  3:51     ` Ravi Bangoria
2017-03-14 15:06 ` [PATCH v5 4/7] perf/sdt: Allow recording of existing events Ravi Bangoria
2017-03-17 23:13   ` Masami Hiramatsu
2017-03-20  9:12     ` Ravi Bangoria
2017-03-21  4:52       ` Masami Hiramatsu
2017-03-14 15:06 ` [PATCH v5 5/7] perf/sdt: Warn when number of events recorded are not equal to cached events Ravi Bangoria
2017-03-14 15:06 ` [PATCH v5 6/7] perf/sdt: List events fetched from uprobe_events Ravi Bangoria
2017-03-14 15:06 ` [PATCH v5 7/7] " Ravi Bangoria
2017-03-17 23:14   ` Masami Hiramatsu
2017-03-20  9:16     ` Ravi Bangoria
2017-03-16  9:51 ` Masami Hiramatsu [this message]
2017-03-16 11:27   ` [PATCH v5 0/7] perf/sdt: Directly record SDT events with 'perf record' Ravi Bangoria
2017-03-17  4:42     ` 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=20170316185140.a17b885479976d4be36349f4@kernel.org \
    --to=mhiramat@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=ananth@in.ibm.com \
    --cc=brendan.d.gregg@gmail.com \
    --cc=hekuang@huawei.com \
    --cc=hemant@linux.vnet.ibm.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mingo@redhat.com \
    --cc=naveen.n.rao@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.vnet.ibm.com \
    --cc=sukadev@linux.vnet.ibm.com \
    --cc=treeze.taeung@gmail.com \
    --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;
as well as URLs for NNTP newsgroup(s).